diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b5ad990..1de6c3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,7 +16,9 @@ - + @@ -68,8 +70,9 @@ android:label="メンバー追加" /> + android:label="グループ一覧" + android:theme="@style/AppTheme.NoActionBar"> + diff --git a/app/src/main/java/com/example/cosmosclient/entities/GroupListResponse.java b/app/src/main/java/com/example/cosmosclient/entities/GroupListResponse.java new file mode 100644 index 0000000..9af528b --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/GroupListResponse.java @@ -0,0 +1,48 @@ +package com.example.cosmosclient.entities; + +import com.example.cosmosclient.entities.jsons.GroupJson; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +import java.util.List; +//@JsonIgnoreProperties(ignoreUnknown = true) + +public class GroupListResponse { + private List groups; + + public GroupListResponse() { + + } + + public GroupListResponse(List groups) { + this.groups = groups; + } + + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + public void addGroup(GroupJson g) { + groups.add(g); + } + + public GroupJson getGroup(int index) { + return groups.get(index); + } + + public void clearGroup() { + groups.clear(); + } + + public void removeGroup(int index) { + groups.remove(index); + } + + public int getGroupCount() { + return groups.size(); + } + +} diff --git a/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java b/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java new file mode 100644 index 0000000..9264728 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java @@ -0,0 +1,35 @@ +package com.example.cosmosclient.entities.jsons; + +public class GroupJson { + private String name; + private String gId; + private String uri; + + public String getgId() { + return gId; + } + + public void setgId(String gId) { + this.gId = gId; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri){ + this.uri = uri; + } + + public void setName(String name){ + this.name = name; + } + + public String getName(){ + return name; + } + + public String toString() { + return name; + } +} diff --git a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java index adfd574..1e62250 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -3,6 +3,7 @@ import com.example.cosmosclient.entities.AddRequestsResponse; import com.example.cosmosclient.entities.CreateGroupResponse; import com.example.cosmosclient.entities.Group; +import com.example.cosmosclient.entities.GroupListResponse; import com.example.cosmosclient.entities.MemberListResponse; import com.example.cosmosclient.entities.Request; import com.example.cosmosclient.entities.Requests; @@ -22,6 +23,9 @@ public interface GroupsRest { + @GET("groups") + Call getGroups(@Query("uId") String uId, @Query("token") String token); + @POST("groups") @FormUrlEncoded Call createGroup(@Field("name") String name, @Field("uId") String uId, @Field("token") String token); diff --git a/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java index 608b4f8..b05522c 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java @@ -2,10 +2,12 @@ import com.example.cosmosclient.entities.SigninResponse; import com.example.cosmosclient.entities.SignupResponse; +import com.example.cosmosclient.entities.User; import retrofit2.Call; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Path; import retrofit2.http.Query; @@ -15,6 +17,9 @@ @FormUrlEncoded Call login(@Path("uId") String uId,@Field("pw") String pw); + @GET("users/{uId}") + Call getName(@Path("uId") String uId, @Field("token") String token); + @POST("users") @FormUrlEncoded Call createUser(@Field("name") String name, @Field("pw") String pw, @Field("iconImage") String icon_image); diff --git a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java index 92cc9ec..857101d 100644 --- a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java @@ -1,5 +1,6 @@ package com.example.cosmosclient.views; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.graphics.BitmapFactory; import android.net.Uri; @@ -15,6 +16,8 @@ import android.widget.TextView; import com.example.cosmosclient.R; +import com.example.cosmosclient.app.Cosmos; +import com.example.cosmosclient.entities.Group; public class AddMemberActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { @@ -35,7 +38,12 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_member); - + /*ここからグループ名表示*/ + TextView groupName = findViewById(R.id.groupName); + Cosmos app = (Cosmos) getApplication(); + Group curentGroup = app.getCurentGroup(); + groupName.setText(curentGroup.getName()); + /*終了*/ // ListViewのインスタンスを生成 ListView listView = findViewById(R.id.list_view); @@ -56,7 +64,8 @@ @Override public void onItemClick(AdapterView parent, View v, int position, long id) { - + Cosmos app = (Cosmos) getApplication(); + Group curentGroup = app.getCurentGroup(); Intent intent = null; // clickされたpositionのtextとphotoのID @@ -67,47 +76,24 @@ intent = new Intent(this.getApplicationContext(), DisplayGroupIDActivity.class); }else{ // intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); - intent = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID")); + String URL="line://msg/text/あなたは"+curentGroup.getName()+"に招待されています。%0D%0A今すぐアプリを立ち上げて、下記のIDを入力して今すぐ参加しよう!%0D%0A"+curentGroup.getgId(); + intent = new Intent(Intent.ACTION_VIEW, Uri.parse(URL)); + } // Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); // SubActivityへ遷移 + try { startActivity(intent); + } + //Lineがダウンロードされいない場合に入る + catch (ActivityNotFoundException e) { + // ブラウザアプリが有効でない場合はここに入る + // 必要ならエラー表示とかする + intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=jp.naver.line.android&hl=ja")); + startActivity(intent); + + } } -// @Override -// protected void onCreate(Bundle savedInstanceState) { -// super.onCreate(savedInstanceState); -// setContentView(R.layout.activity_add_member); -// //各種idを取得 -// Button qrButton = findViewById(R.id.addQR); -// Button idButton = findViewById(R.id.addID); -// Button mailButton = findViewById(R.id.addMail); -// TextView groupText=findViewById(R.id.groupName); -// -// //QRからメンバー追加の画面遷移処理画面を記述 -// qrButton.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); -// startActivity(intent); -// } -// }); -// //IDからメンバー追加の画面遷移処理画面を記述 -// idButton.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); -// startActivity(intent); -// } -// }); -// //Mailからメンバー追加の画面遷移処理画面を記述 -// mailButton.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// Intent intent = new Intent(getApplication(), DisplayQRActivity.class); -// startActivity(intent); -// } -// }); -// -// } + } diff --git a/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java b/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java index b2e17db..f6131ad 100644 --- a/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java +++ b/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java @@ -7,6 +7,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; @@ -69,12 +70,13 @@ itemList = (ListView) view.findViewById(R.id.listview); //image = (ImageView) view.findViewById(R.id.item_img); + /* ArrayList items = new ArrayList<>(); items.add("からし"); items.add("わさび"); items.add("砂糖"); - - ArrayAdapter adapter = new ArrayAdapter(getContext(), R.layout.item_list, items); + */ + //ArrayAdapter adapter = new ArrayAdapter(getContext(), R.layout.item_list, items); //itemList.setAdapter(adapter); } diff --git a/app/src/main/java/com/example/cosmosclient/views/Cheeses.java b/app/src/main/java/com/example/cosmosclient/views/Cheeses.java index a1386ac..d02cdc2 100644 --- a/app/src/main/java/com/example/cosmosclient/views/Cheeses.java +++ b/app/src/main/java/com/example/cosmosclient/views/Cheeses.java @@ -1,13 +1,16 @@ package com.example.cosmosclient.views; +import com.example.cosmosclient.resources.GroupsRest; +import retrofit2.Call; + public class Cheeses { public static final String[] sCheeseStrings = { - "ファミリー\n 紙コップ\n 延長ケーブル", - "会社\n からし", - "Group3\n ケーキ\n ほげほげ", - "Group4\n ほげほげ\n ほげほげ", - "Group5\n ほげほげ\n ほげほげ\n ほげほげ\n ほげほげ", - "Group6\n ほげほげ\n ほげほげ\n ほげほげ", + "ファミリー", + "会社", + "Group3", + "Group4", + "Group5", + "Group6", "Group7" }; } diff --git a/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java b/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java index 09cc020..c078659 100644 --- a/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java @@ -21,7 +21,7 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_group_id); - + TextView groupName = findViewById(R.id.groupName); EditText groupID = (EditText)findViewById(R.id.groupID); // ボタンを設定 Button copyButton = findViewById(R.id.copy_Button); @@ -30,6 +30,8 @@ // //現在のグループ情報を格納しているものからgIdを取得 Cosmos app = (Cosmos) getApplication(); Group curentGroup = app.getCurentGroup(); + groupName.setText(curentGroup.getName()); + // //元となるgIdを取得完了 final String gId = curentGroup.getgId(); // final String gId = "vrehngortis"; diff --git a/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java b/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java index 6daa9d1..ab24efc 100644 --- a/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java @@ -5,6 +5,7 @@ import android.os.Bundle; import android.util.AndroidRuntimeException; import android.widget.ImageView; +import android.widget.TextView; import com.example.cosmosclient.R; import com.example.cosmosclient.app.Cosmos; @@ -19,9 +20,12 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_qr); + TextView groupName = findViewById(R.id.groupName); //現在のグループ情報を格納しているものからgIdを取得 Cosmos app = (Cosmos) getApplication(); Group curentGroup = app.getCurentGroup(); + groupName.setText(curentGroup.getName()); + //元となるgIdを取得完了 String data = curentGroup.getgId(); diff --git a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java index 22b50ec..16bd164 100644 --- a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java @@ -1,8 +1,11 @@ package com.example.cosmosclient.views; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.nfc.Tag; import android.os.Bundle; +import android.util.Base64; import android.util.Log; import android.view.View; import android.support.v4.view.GravityCompat; @@ -16,15 +19,27 @@ import android.view.Menu; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ListAdapter; import android.widget.TextView; import android.widget.Toast; +import com.example.cosmosclient.app.Cosmos; +import com.example.cosmosclient.entities.Group; +import com.example.cosmosclient.entities.GroupListResponse; +import com.example.cosmosclient.entities.MemberListResponse; import com.example.cosmosclient.views.DynamicGridView; +import com.example.cosmosclient.resources.GroupsRest; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; import com.example.cosmosclient.R; +import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.Arrays; @@ -33,6 +48,7 @@ private static final String TAG = GroupListActivity.class.getName(); private DynamicGridView gridView; + GroupListResponse result; @Override @@ -42,12 +58,101 @@ Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - String[] list = {"ファミリー\n 紙コップ\n 延長ケーブル", "Group2\n からし", "Group3\n ケーキ\n something"}; + final String uId,token; + Cosmos app = (Cosmos) getApplication(); + uId = app.getuId(); + token = app.getToken(); + //ユーザ名とユーザIDを表示したい + final String uName; + uName = "hogehoge"; + NavigationView navView = (NavigationView) findViewById(R.id.nav_view); + View headerView = navView.getHeaderView(0); + TextView userNameTextView = navView.getHeaderView(0).findViewById(R.id.userName); + TextView userIDTextView = navView.getHeaderView(0).findViewById(R.id.userID); + userNameTextView.setText("ユーザ名:"+uName); + userIDTextView.setText("ユーザID:"+uId); + final ArrayList groupList = new ArrayList<>(); + + //retrofitの処理 + final Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + //interfaceから実装を取得 + final GroupsRest getGroupsService = retrofit.create(GroupsRest.class); + + //API呼び出しのための値入力 + final Call call = getGroupsService.getGroups(uId,token); + + //サーバからデータ受け取り + call.enqueue(new Callback() { + //成功時 + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + GroupListResponse result2 = response.body(); + result = result2; +// Iterator it = result.member.iterator(); +// int i = 0; + for (int i = 0; i < result.getGroupCount(); i++) { + groupList.add(result.getGroup(i).getName()); + } + + // グループ名一覧の表示 + gridView.setAdapter((ListAdapter) new CheeseDynamicAdapter(GroupListActivity.this, + result.getGroups(), + getResources().getInteger(R.integer.column_count))); + + //画像をBase64に変換 + Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.default_icon_image); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + icon.compress(Bitmap.CompressFormat.JPEG,100, baos); + byte[] b = baos.toByteArray(); + String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); +// Toast.makeText(GroupListActivity.this,"接続できたよ",Toast.LENGTH_LONG).show(); + + + //アイコンが未設定ならデフォルト画像を設定 +// for(int i = 0; i call, Throwable t) { + t.printStackTrace(); + Toast.makeText(GroupListActivity.this, + "グループ情報取得失敗", Toast.LENGTH_SHORT).show(); + } + }); + +// ArrayList GroupList = new ArrayList<>(); +// for (int i = 0; i < result.getGroupCount(); i++) { +// GroupList.add(result.getGroup(i).getName()); +// } gridView = (DynamicGridView) findViewById(R.id.dynamic_grid); - gridView.setAdapter((ListAdapter) new CheeseDynamicAdapter(this, - new ArrayList(Arrays.asList(Cheeses.sCheeseStrings)), - getResources().getInteger(R.integer.column_count))); gridView.setOnDragListener(new DynamicGridView.OnDragListener() { @Override @@ -81,15 +186,15 @@ }); /* とりあえずの画面遷移なので変更するかも */ - TextView group1 = findViewById(R.id.group1); - group1.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - gridView.stopEditMode(); - Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class); - startActivity(intent); - } - }); +// TextView group1 = findViewById(R.id.group1); +// group1.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// gridView.stopEditMode(); +// Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class); +// startActivity(intent); +// } +// }); DrawerLayout drawer = findViewById(R.id.drawer_layout); @@ -172,5 +277,7 @@ DrawerLayout drawer = findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; + + } } diff --git a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java index 99f0054..64113fa 100644 --- a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java +++ b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java @@ -42,7 +42,7 @@ convertView = inflater.inflate(itemLayoutId, parent, false); // ViewHolder を生成 holder = new ViewHolder(); - holder.textView = convertView.findViewById(R.id.textView); + holder.textView = convertView.findViewById(R.id.userID); holder.imageView = convertView.findViewById(R.id.imageView); convertView.setTag(holder); } diff --git a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java index d2ab01a..242c8f4 100644 --- a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java @@ -5,6 +5,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; +import android.os.Handler; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -14,6 +15,7 @@ import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; +import android.widget.TextView; import android.widget.Toast; import com.example.cosmosclient.R; @@ -43,12 +45,22 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_member_list); + /*ここからグループ名表示*/ + TextView groupName = findViewById(R.id.groupName); //メンバー追加ボタン処理 - FloatingActionButton fab = findViewById(R.id.addrequest_button); + final FloatingActionButton fab = findViewById(R.id.addrequest_button); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + //ボタン連打防止 + fab.setEnabled(false); + new Handler().postDelayed(new Runnable() { + public void run() { + fab.setEnabled(true); + } + }, 1000L); + startActivity(new Intent(MemberListActivity.this, AddMemberActivity.class)); finish(); @@ -57,6 +69,9 @@ //app/CosmosにGETメソッドに必要なデータを取得 Cosmos app = (Cosmos) getApplication(); + //現在のグループ情報を格納しているものからgIdを取得 + Group curentGroup = app.getCurentGroup(); + groupName.setText(curentGroup.getName()); final String token = app.getToken(); final String gId = app.getCurentGroup().getgId(); diff --git a/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java b/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java index c532a6c..42e1f48 100644 --- a/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java +++ b/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java @@ -66,7 +66,7 @@ convertView = inflater.inflate(itemLayoutId, parent, false); // ViewHolder を生成 holder = new MemberListAdapter.ViewHolder(); - holder.textView = convertView.findViewById(R.id.textView); + holder.textView = convertView.findViewById(R.id.userID); holder.imageView = convertView.findViewById(R.id.imageView); convertView.setTag(holder); } diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java index 2a70436..b5b78ae 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java @@ -89,19 +89,25 @@ @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { - SigninResponse result = response.body(); + if(response.body() == null){ + //パスワードが違う際、アプリが落ちてしまうため + Toast.makeText(SigninActivity.this, + "パスワードが違います",Toast.LENGTH_LONG).show(); + }else{ + SigninResponse result = response.body(); - //app/Cosmosに情報保存 - Cosmos app = (Cosmos)getApplication(); - app.setToken(result.token); - app.setuId(UserIdText.getText().toString()); + //app/Cosmosに情報保存 + Cosmos app = (Cosmos) getApplication(); + app.setToken(result.token); + app.setuId(UserIdText.getText().toString()); - //画面遷移 - Intent intent = new Intent(getApplication(), GroupListActivity.class); - startActivity(intent); - Toast.makeText(SigninActivity.this, - "ログインしました", Toast.LENGTH_SHORT).show(); - finish(); + //画面遷移 + Intent intent = new Intent(getApplication(), GroupListActivity.class); + startActivity(intent); + Toast.makeText(SigninActivity.this, + "ログインしました", Toast.LENGTH_SHORT).show(); + finish(); + } }else{ //onFailureでキャッチできないエラーの処理 @@ -113,7 +119,7 @@ //失敗時 @Override public void onFailure(Call call, Throwable t) { - //t.printStackTrace(); + t.printStackTrace(); Toast.makeText(SigninActivity.this, "ユーザIDもしくはパスワードが間違っています",Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java index 5770dcc..f6f3965 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java @@ -41,6 +41,7 @@ private Button MakeAccountButton; private ImageView iconChoice; private String iconImageBase64; + private int quality = 70; @Override protected void onCreate(Bundle savedInstanceState) { @@ -185,18 +186,21 @@ //画像をBase64に変換 ByteArrayOutputStream baos = new ByteArrayOutputStream(); Bitmap afterResizeBitmap = Bitmap.createScaledBitmap(image,50,50,true); - afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,70, baos); + afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos); byte[] b = baos.toByteArray(); String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); - if(imageEncoded.length() <= 2000){ - iconChoice.setImageBitmap(image); - iconImageBase64 = imageEncoded; - }else{ - Toast.makeText(SignupActivity.this, - "この画像は使用できません。\n別の画像を選択してください。",Toast.LENGTH_LONG).show(); + while (imageEncoded.length() >2000){ + //文字数の2000文字以下になるまで圧縮率を上げて再度変換 + baos = new ByteArrayOutputStream(); + quality -=5; + afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos); + b = baos.toByteArray(); + imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); } + iconChoice.setImageBitmap(image); + iconImageBase64 = imageEncoded; }catch(IOException e){ e.printStackTrace(); } diff --git a/app/src/main/res/layout/activity_add_member.xml b/app/src/main/res/layout/activity_add_member.xml index 242f8aa..3e218c9 100644 --- a/app/src/main/res/layout/activity_add_member.xml +++ b/app/src/main/res/layout/activity_add_member.xml @@ -12,7 +12,7 @@ android:layout_height="75dp" android:background="#e6eae3" android:gravity="center" - android:text="家族用 グループ" + android:text="" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="0dp" /> diff --git a/app/src/main/res/layout/activity_display_group_id.xml b/app/src/main/res/layout/activity_display_group_id.xml index 8f17cde..bc5af51 100644 --- a/app/src/main/res/layout/activity_display_group_id.xml +++ b/app/src/main/res/layout/activity_display_group_id.xml @@ -12,7 +12,7 @@ android:layout_height="75dp" android:background="#e6eae3" android:gravity="center" - android:text="家族用 グループ" + android:text="" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="16dp" /> diff --git a/app/src/main/res/layout/activity_display_qr.xml b/app/src/main/res/layout/activity_display_qr.xml index 32a602e..fd64cdc 100644 --- a/app/src/main/res/layout/activity_display_qr.xml +++ b/app/src/main/res/layout/activity_display_qr.xml @@ -12,7 +12,7 @@ android:layout_height="75dp" android:background="#e6eae3" android:gravity="center" - android:text="家族用 グループ" + android:text="" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="16dp" /> diff --git a/app/src/main/res/layout/activity_join_group_by_id.xml b/app/src/main/res/layout/activity_join_group_by_id.xml index 9f744f2..bb755b3 100644 --- a/app/src/main/res/layout/activity_join_group_by_id.xml +++ b/app/src/main/res/layout/activity_join_group_by_id.xml @@ -16,13 +16,14 @@ android:digits="abcdefghijklmnopqrstuvwxyz1234567890-" android:ems="10" android:gravity="start|top" + android:hint="IDを入力してください" android:inputType="textEmailAddress" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/button" - app:layout_constraintHorizontal_bias="0.765" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView7" - app:layout_constraintVertical_bias="0.441" /> + app:layout_constraintVertical_bias="0.233" /> @@ -42,12 +43,12 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" - android:layout_marginTop="192dp" + android:layout_marginTop="160dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:textSize="24sp" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.445" + app:layout_constraintHorizontal_bias="0.465" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/inputGroupID" /> @@ -66,11 +67,10 @@ android:id="@+id/Addbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="40dp" - android:layout_marginRight="40dp" + android:layout_marginTop="60dp" android:text="グループに入る" android:visibility="invisible" - app:layout_constraintBottom_toBottomOf="@+id/IDresult" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="@+id/IDresult" /> + app:layout_constraintEnd_toEndOf="@+id/IDresult" + app:layout_constraintStart_toStartOf="@+id/IDresult" + app:layout_constraintTop_toBottomOf="@+id/IDresult" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_member_list.xml b/app/src/main/res/layout/activity_member_list.xml index 591d3be..81b0f8a 100644 --- a/app/src/main/res/layout/activity_member_list.xml +++ b/app/src/main/res/layout/activity_member_list.xml @@ -34,7 +34,7 @@ android:layout_height="75dp" android:background="#e6eae3" android:gravity="center" - android:text="家族用 グループ" + android:text="" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="0dp" /> diff --git a/app/src/main/res/layout/activity_qrcode_reading.xml b/app/src/main/res/layout/activity_qrcode_reading.xml index 82e66d2..0b0d88a 100644 --- a/app/src/main/res/layout/activity_qrcode_reading.xml +++ b/app/src/main/res/layout/activity_qrcode_reading.xml @@ -5,13 +5,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".views.QRcodeReadingActivity"> + @@ -46,12 +47,10 @@ android:id="@+id/Addbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="16dp" - android:layout_marginRight="16dp" + android:layout_marginTop="76dp" android:text="グループに入る" - app:layout_constraintBottom_toBottomOf="@+id/QRcodeResult" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="@+id/QRcodeResult" - app:layout_constraintVertical_bias="0.437" /> + app:layout_constraintEnd_toEndOf="@+id/QRcodeResult" + app:layout_constraintStart_toStartOf="@+id/QRcodeResult" + app:layout_constraintTop_toBottomOf="@+id/QRcodeResult" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index c0b617e..ea37005 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -44,7 +44,7 @@ android:layout_height="1dp" android:layout_marginStart="8dp" android:layout_marginLeft="50dp" - android:layout_marginTop="32dp" + android:layout_marginTop="24dp" android:layout_marginEnd="8dp" android:layout_marginRight="50dp" android:background="@android:color/darker_gray" @@ -59,7 +59,7 @@ android:layout_height="28dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" - android:layout_marginTop="18dp" + android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:background="#FFFFFF" @@ -77,15 +77,15 @@ android:layout_height="66dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" - android:layout_marginTop="16dp" + android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" - android:textAllCaps="false" android:text="@string/make_account" + android:textAllCaps="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.445" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/ConfirmPasswordText" /> + app:layout_constraintTop_toBottomOf="@+id/choiceImage" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_grid.xml b/app/src/main/res/layout/item_grid.xml index 829341c..4fc0f67 100644 --- a/app/src/main/res/layout/item_grid.xml +++ b/app/src/main/res/layout/item_grid.xml @@ -2,6 +2,7 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index 21d5116..5037c41 100644 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -2,11 +2,10 @@ - \ No newline at end of file diff --git a/app/src/main/res/layout/list.xml b/app/src/main/res/layout/list.xml index f7142e2..5bb4578 100644 --- a/app/src/main/res/layout/list.xml +++ b/app/src/main/res/layout/list.xml @@ -15,7 +15,7 @@ android:contentDescription="picture"/>