From 1c7f3481b5e606bfbd12119b00254af16d9ecc1d Mon Sep 17 00:00:00 2001 From: Sam Stern Date: Wed, 10 Aug 2016 11:35:01 -0700 Subject: [PATCH] Re-organize sample and clear memory leaks Change-Id: I56d8d2ab1b1fa32c15bfcd8fcdc61f20f4973949 --- app/src/main/AndroidManifest.xml | 4 +-- .../com/firebase/uidemo/ChooserActivity.java | 1 + .../uidemo/{ => database}/ChatActivity.java | 31 ++++++++++++------- app/src/main/res/layout/activity_chat.xml | 2 +- app/src/main/res/values/colors.xml | 6 ++-- 5 files changed, 27 insertions(+), 17 deletions(-) rename app/src/main/java/com/firebase/uidemo/{ => database}/ChatActivity.java (93%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0cb927d26..48b59198c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ @@ -33,4 +33,4 @@ android:label="@string/name_auth_ui" /> - \ No newline at end of file + diff --git a/app/src/main/java/com/firebase/uidemo/ChooserActivity.java b/app/src/main/java/com/firebase/uidemo/ChooserActivity.java index b9ab81b1d..ee7a1f677 100644 --- a/app/src/main/java/com/firebase/uidemo/ChooserActivity.java +++ b/app/src/main/java/com/firebase/uidemo/ChooserActivity.java @@ -26,6 +26,7 @@ import android.widget.TextView; import com.firebase.uidemo.auth.AuthUiActivity; +import com.firebase.uidemo.database.ChatActivity; import butterknife.BindView; import butterknife.ButterKnife; diff --git a/app/src/main/java/com/firebase/uidemo/ChatActivity.java b/app/src/main/java/com/firebase/uidemo/database/ChatActivity.java similarity index 93% rename from app/src/main/java/com/firebase/uidemo/ChatActivity.java rename to app/src/main/java/com/firebase/uidemo/database/ChatActivity.java index a9a33c00f..7958b1f6e 100644 --- a/app/src/main/java/com/firebase/uidemo/ChatActivity.java +++ b/app/src/main/java/com/firebase/uidemo/database/ChatActivity.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package com.firebase.uidemo; +package com.firebase.uidemo.database; import android.graphics.PorterDuff; import android.graphics.drawable.GradientDrawable; @@ -35,6 +35,7 @@ import android.widget.Toast; import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.uidemo.R; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; @@ -45,7 +46,7 @@ import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.Query; -public class ChatActivity extends AppCompatActivity { +public class ChatActivity extends AppCompatActivity implements FirebaseAuth.AuthStateListener { public static final String TAG = "RecyclerViewDemo"; @@ -65,12 +66,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_chat); mAuth = FirebaseAuth.getInstance(); - mAuth.addAuthStateListener(new FirebaseAuth.AuthStateListener() { - @Override - public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { - updateUI(); - } - }); + mAuth.addAuthStateListener(this); mSendButton = (Button) findViewById(R.id.sendButton); mMessageEdit = (EditText) findViewById(R.id.messageEdit); @@ -129,6 +125,19 @@ public void onStop() { } } + @Override + public void onDestroy() { + super.onDestroy(); + if (mAuth != null) { + mAuth.removeAuthStateListener(this); + } + } + + @Override + public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { + updateUI(); + } + private void attachRecyclerViewAdapter() { Query lastFifty = mChatRef.limitToLast(50); mRecyclerViewAdapter = new FirebaseRecyclerAdapter( @@ -236,13 +245,13 @@ public void setIsSender(Boolean isSender) { left_arrow.setVisibility(View.GONE); right_arrow.setVisibility(View.VISIBLE); - messageContainer.setGravity(Gravity.RIGHT); + messageContainer.setGravity(Gravity.END); } else { - color = ContextCompat.getColor(mView.getContext(), R.color.material_grey_300); + color = ContextCompat.getColor(mView.getContext(), R.color.material_gray_300); left_arrow.setVisibility(View.VISIBLE); right_arrow.setVisibility(View.GONE); - messageContainer.setGravity(Gravity.LEFT); + messageContainer.setGravity(Gravity.START); } ((GradientDrawable) message.getBackground()).setColor(color); diff --git a/app/src/main/res/layout/activity_chat.xml b/app/src/main/res/layout/activity_chat.xml index 38d9bd467..4134a952c 100644 --- a/app/src/main/res/layout/activity_chat.xml +++ b/app/src/main/res/layout/activity_chat.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".ChatActivity"> + tools:context=".database.ChatActivity"> + #039BE5 #0288D1 #FFA000 @@ -14,7 +14,7 @@ #AED581 #69F0AE - #E0E0E0 + #E0E0E0 #F9FBE7 #AEEA00 @@ -23,4 +23,4 @@ #AA00FF #FF5252 - \ No newline at end of file +