SendScreenShotActivity #190

Merged g-akagi merged 7 commits into nitta-lab-2021:master from nitta-lab-2021:SendScreenShotActivity on 6 Oct 2021
Showing 7 changed files
View
5
.idea/misc.xml
<entry key="..\:/Users/Student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_title.xml" value="0.1359375" />
<entry key="..\:/Users/Student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/fragment_home.xml" value="0.1" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/drawable/ic_paint_tool_button.xml" value="0.2712962962962963" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_animation.xml" value="0.22870370370370371" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_invite.xml" value="0.3596014492753623" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_login_screen.xml" value="0.3596014492753623" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_main.xml" value="0.2674772036474164" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_page.xml" value="0.360054347826087" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_paint.xml" value="0.2674772036474164" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_send_screen_shot.xml" value="0.3596014492753623" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_sign_up.xml" value="0.37318840579710144" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_title.xml" value="0.37318840579710144" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/activity_userpage.xml" value="0.3596014492753623" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/animation_home.xml" value="0.2674772036474164" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/fragment_create.xml" value="0.37318840579710144" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/fragment_edit.xml" value="0.37318840579710144" />
<entry key="..\:/Users/student/StudioProjects/org.ntlab.acanthus_client/app/src/main/res/layout/fragment_home.xml" value="0.37318840579710144" />
View
16
app/src/main/AndroidManifest.xml
package="org.ntlab.acanthus_client">
 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
<application
android:name=".Acanthus"
android:allowBackup="true"
android:supportsRtl="true"
android:theme="@style/Theme.Acanthus"
android:usesCleartextTraffic="true">
<activity
android:name=".views.paint.page.PageActivity"
android:exported="true" />
<activity android:name=".views.animation.AnimationActivity" />
<activity android:name=".views.animation_detail.AnimationDetailActivity" />
android:name=".views.paint.SendScreenShotActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name=".views.animation.AnimationActivity"></activity>
<activity android:name=".views.animation_detail.AnimationDetailActivity"></activity>
<activity android:name=".views.title.TitleActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
 
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".views.sign_up.SignUpActivity" />
<activity android:name=".views.paint.InviteActivity" />
<activity android:name=".views.paint.PaintActivity" />
<activity android:name=".views.sign_up.SignUpActivity"></activity>
<activity android:name=".views.paint.InviteActivity"></activity>
<activity android:name=".views.paint.PaintActivity"></activity>
<activity android:name=".views.login.LoginScreenActivity" />
<activity
android:name=".views.MainActivity"
android:label="@string/title_activity_main" />
View
29
app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintActivity.java
 
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import com.google.android.material.bottomnavigation.BottomNavigationView;
 
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
initView();
 
Button button = findViewById(R.id.button_keep);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(), SendScreenShotActivity.class);
startActivity(intent);
}
});
}
 
//-----------------------------------------------------------------
@Override
paintViewModel.inviteNewUserRequest(dummyId);
}
 
//-----------------------------------------------------------------
//
public void onClickAddPage(View view) {
paintViewModel.addPageRequest();
}
 
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// init
private void init() {
Acanthus acanthus = (Acanthus) getApplication();
paintViewModel = new ViewModelProvider(this).get(PaintViewModel.class);
paintViewModel.init(acanthus);
 
startObserve();
}
 
//-----------------------------------------------------------------
//
paintCanvas.setPaintViewModel(paintViewModel);
 
paintToolBar = new PaintToolBar(this, paintCanvas);
 
}
 
//-----------------------------------------------------------------
//
private void startObserve() {
paintViewModel.getPageNo().observe(this, new Observer<Integer>() {
@Override
public void onChanged(Integer i) {
binding.buttonAddPage.setText(String.valueOf(i));
}
});
}
 
//------------------------------------------------------------------
// デバッグ用の現在編集中のAid表示
View
113
app/src/main/java/org/ntlab/acanthus_client/views/paint/SendScreenShotActivity.java 0 → 100644
package org.ntlab.acanthus_client.views.paint;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
 
import org.ntlab.acanthus_client.R;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class SendScreenShotActivity extends Activity implements View.OnClickListener {
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_screen_shot);
// 全体キャプチャ
Button captureAll = (Button)findViewById(R.id.capture_all);
captureAll.setOnClickListener(this);
 
// アイコン画像のみキャプチャ
Button captureIcon = (Button)findViewById(R.id.capture_icon);
captureIcon.setOnClickListener(this);
 
// キャプチャした画像を添付してメールを送る
Button sendMail = (Button)findViewById(R.id.send_mail);
sendMail.setOnClickListener(this);
 
}
 
@Override
public void onClick(View v) {
// 読み書きするファイル名を指定
File file = new File(Environment.getExternalStorageDirectory() + "/capture.jpeg");
// 指定したファイル名が無ければ作成する。
file.getParentFile().mkdir();
 
switch(v.getId()) {
case R.id.capture_all:
// 全体を撮る
saveCapture(findViewById(android.R.id.content),file);
break;
case R.id.capture_icon:
// View1を撮る
saveCapture(findViewById(R.id.icon),file);
break;
case R.id.send_mail:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"s1871104@s.konan-u.ac.jp"});
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(intent);
 
break;
}
}
 
/**
* 撮ったキャプチャを保存
* @param view
* @param 書き込み先ファイルfile
*/
public void saveCapture(View view, File file) {
// キャプチャを撮る
Bitmap capture = getViewCapture(view);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file, false);
// 画像のフォーマットと画質と出力先を指定して保存
capture.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException ie) {
fos = null;
}
}
}
}
 
/**
* キャプチャを撮る
* @param 撮りたいview
* @return 撮ったキャプチャ(Bitmap)
*/
public Bitmap getViewCapture(View view) {
view.setDrawingCacheEnabled(true);
 
// Viewのキャプチャを取得
Bitmap cache = view.getDrawingCache();
if(cache == null){
return null;
}
Bitmap screenShot = Bitmap.createBitmap(cache);
view.setDrawingCacheEnabled(false);
return screenShot;
}
 
}
View
22
app/src/main/res/layout/activity_paint.xml
android:layout_height="674dp"
android:layout_weight="1"
app:layout_constraintBottom_toTopOf="@+id/navPaint"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
 
<Button
android:id="@+id/button_clear"
android:layout_width="match_parent"
app:layout_constraintHorizontal_bias="0.876"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.491" />
 
<Button
android:id="@+id/button_addPage"
android:layout_width="72dp"
android:layout_height="72dp"
android:background="@android:drawable/presence_online"
android:backgroundTint="#F4D5D5"
android:onClick="onClickAddPage"
android:text="pageNo"
android:textColor="#FFFFFF"
app:iconTint="#C88B8B"
app:layout_constraintBottom_toTopOf="@+id/button_clear"
app:layout_constraintEnd_toStartOf="@+id/button_Invite"
app:layout_constraintHorizontal_bias="0.201"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.112" />
 
<TextView
android:id="@+id/textViewCurAid"
android:layout_width="wrap_content"
View
74
app/src/main/res/layout/activity_send_screen_shot.xml 0 → 100644
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="300dp"
android:translationY="175dp"
tools:context=".views.paint.SendScreenShotActivity">
 
<Button
android:id="@+id/capture_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/activity_vertical_margin"
android:text="capture_all"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.285" />
 
<Button
android:id="@+id/capture_icon"
android:layout_width="136dp"
android:layout_height="52dp"
android:padding="@dimen/activity_vertical_margin"
android:text="capture_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/capture_all"
app:layout_constraintVertical_bias="0.007" />
 
<Button
android:id="@+id/send_mail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/activity_vertical_margin"
android:text="send_mail"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.987" />
 
<ImageView
android:id="@+id/icon"
android:layout_width="84dp"
android:layout_height="87dp"
android:padding="@dimen/activity_vertical_margin"
android:src="@drawable/headshot_reasonably_small_400x400"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.779" />
 
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="心がスクショしたがってるんだ。"
android:textColor="#716D6D"
android:textSize="20sp"
app:layout_constraintBottom_toTopOf="@+id/capture_all"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
 
</androidx.constraintlayout.widget.ConstraintLayout>
View
7
app/src/main/res/values/themes.xml
<item name="colorPrimary">@color/silver</item>
</style>
<style name="Theme.Acanthus.Dark" parent="Theme.AppCompat"/>
<style name="AppTheme.NoTitleBar" parent="Theme.AppCompat.NoActionBar"/>
 
<!-- 半透明背景設定 -->
<style name="TransparencyTheme" parent="Theme.AppCompat.Light">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>