diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 9faa4a111f2839623e7233b2cefaf0279404ac22..f646c85b5cb63ffb5844fdd9baf7266c8fb847fb 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -32,11 +32,11 @@ </service> <activity - android:name=".MainActivity" + android:name=".activity.MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" /> <activity - android:name=".AuthActivity" + android:name=".activity.AuthActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/android/app/src/main/java/com/chatman/AuthActivity.java b/android/app/src/main/java/com/chatman/activity/AuthActivity.java similarity index 99% rename from android/app/src/main/java/com/chatman/AuthActivity.java rename to android/app/src/main/java/com/chatman/activity/AuthActivity.java index b8e2d55726851f6f27354b23c82c34deda740331..db0da6bc08708c5f752718603e49513f41d0fdce 100644 --- a/android/app/src/main/java/com/chatman/AuthActivity.java +++ b/android/app/src/main/java/com/chatman/activity/AuthActivity.java @@ -1,4 +1,4 @@ -package com.chatman; +package com.chatman.activity; import android.app.Activity; import android.content.Context; @@ -14,15 +14,14 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import android.widget.Toast; import com.bumptech.glide.Glide; +import com.chatman.R; import com.chatman.helper.FirebaseHelper; import com.chatman.helper.PreferencesHelper; import com.chatman.model.User; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; -import com.google.firebase.FirebaseApp; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.ValueEventListener; diff --git a/android/app/src/main/java/com/chatman/MainActivity.java b/android/app/src/main/java/com/chatman/activity/MainActivity.java similarity index 72% rename from android/app/src/main/java/com/chatman/MainActivity.java rename to android/app/src/main/java/com/chatman/activity/MainActivity.java index c1c4d8862158c3a91442734ce40ed149dfc8c11f..2fa856659c2b3ef9cb2ecee3abc78f6c55053bc5 100644 --- a/android/app/src/main/java/com/chatman/MainActivity.java +++ b/android/app/src/main/java/com/chatman/activity/MainActivity.java @@ -1,49 +1,23 @@ -package com.chatman; +package com.chatman.activity; -import android.app.NotificationChannel; -import android.app.NotificationManager; -import android.app.PendingIntent; import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.media.RingtoneManager; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; -import android.support.v4.app.NotificationCompat; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.util.Log; -import android.view.View; -import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; import com.bumptech.glide.Glide; -import com.chatman.adapter.ChatListAdapter; -import com.chatman.helper.FirebaseHelper; -import com.chatman.helper.PreferencesHelper; -import com.chatman.model.ChatList; -import com.google.android.gms.tasks.OnCompleteListener; -import com.google.android.gms.tasks.Task; -import com.google.firebase.FirebaseApp; -import com.google.firebase.iid.FirebaseInstanceId; -import com.google.firebase.iid.InstanceIdResult; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import com.chatman.R; +import com.chatman.fragment.BotFragment; +import com.chatman.fragment.HomeFragment; +import com.chatman.fragment.ProfileFragment; public class MainActivity extends AppCompatActivity implements ProfileFragment.OnFragmentInteractionListener, diff --git a/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java b/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java index eb590217d11d469e6b6441a66171973a7b400535..e9c8349c22f94ea430af6aebc45e3558fe36bc5b 100644 --- a/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java +++ b/android/app/src/main/java/com/chatman/adapter/ChatListAdapter.java @@ -1,11 +1,7 @@ package com.chatman.adapter; -import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; -import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -17,12 +13,9 @@ import android.widget.Toast; import com.bumptech.glide.Glide; -import com.chatman.MainActivity; import com.chatman.R; import com.chatman.model.ChatList; -import org.w3c.dom.Text; - import java.util.ArrayList; import java.util.List; @@ -44,12 +37,13 @@ public class ChatListAdapter extends RecyclerView.Adapter<ChatListAdapter.ChatLi } @Override - public void onBindViewHolder(ChatListHolder holder, int position) { + public void onBindViewHolder(ChatListHolder holder, final int position) { holder.bind(items.get(position)); final String nama = holder.chatListName.getText().toString(); holder.chatListBackground.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + String chatRoomId = items.get(position).getIdChatRoom(); Toast.makeText(context, "Show "+nama+" chat room", Toast.LENGTH_SHORT).show(); } }); diff --git a/android/app/src/main/java/com/chatman/adapter/MainViewPagerAdapter.java b/android/app/src/main/java/com/chatman/adapter/MainViewPagerAdapter.java deleted file mode 100644 index 8eb32376651027cf5e2903dc5852427e444b5456..0000000000000000000000000000000000000000 --- a/android/app/src/main/java/com/chatman/adapter/MainViewPagerAdapter.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.chatman.adapter; - -import android.content.Context; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentStatePagerAdapter; - -import com.chatman.fragment.ChatBot; -import com.chatman.fragment.ChatList; - -public class MainViewPagerAdapter extends FragmentStatePagerAdapter { - private Context context; - public MainViewPagerAdapter(FragmentManager fm, Context context) { - super(fm); - this.context = context; - } - - @Override - public Fragment getItem(int i) { - switch (i) { - case 0: - ChatList chatList = new ChatList(); - chatList.setContext(context); - return chatList; - case 1: - return new ChatBot(); - } - return null; - } - - @Override - public int getCount() { - return 2; - } - - @Nullable - @Override - public CharSequence getPageTitle(int position) { - super.getPageTitle(position); - switch (position) { - case 0: - return "Chats"; - case 1: - return "Bot"; - default: - return null; - } - } -} diff --git a/android/app/src/main/java/com/chatman/BotFragment.java b/android/app/src/main/java/com/chatman/fragment/BotFragment.java similarity index 97% rename from android/app/src/main/java/com/chatman/BotFragment.java rename to android/app/src/main/java/com/chatman/fragment/BotFragment.java index 00361eb6d7388774e8cc70d9bd58f8588d5f7433..ea286bb37913e71ccbc49f4fc511d09c4ea3d2ad 100644 --- a/android/app/src/main/java/com/chatman/BotFragment.java +++ b/android/app/src/main/java/com/chatman/fragment/BotFragment.java @@ -1,7 +1,6 @@ -package com.chatman; +package com.chatman.fragment; import android.content.Context; -import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; @@ -17,12 +16,11 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.Toast; +import com.chatman.R; import com.chatman.adapter.ChatAdapter; -import com.chatman.adapter.ChatListAdapter; import com.chatman.helper.FirebaseHelper; import com.chatman.helper.PreferencesHelper; import com.chatman.model.Chat; -import com.chatman.model.User; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.ValueEventListener; diff --git a/android/app/src/main/java/com/chatman/fragment/ChatBot.java b/android/app/src/main/java/com/chatman/fragment/ChatBot.java deleted file mode 100644 index 422908bb00b55ae9e6deb1a851d7708001d8ced4..0000000000000000000000000000000000000000 --- a/android/app/src/main/java/com/chatman/fragment/ChatBot.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.chatman.fragment; - - -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.chatman.R; - -/** - * A simple {@link Fragment} subclass. - */ -public class ChatBot extends Fragment { - - - public ChatBot() { - // Required empty public constructor - } - - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_chat_bot, container, false); - } - -} diff --git a/android/app/src/main/java/com/chatman/fragment/ChatList.java b/android/app/src/main/java/com/chatman/fragment/ChatList.java deleted file mode 100644 index 4b5ffd065755cbed6324f7f047fe48114c443699..0000000000000000000000000000000000000000 --- a/android/app/src/main/java/com/chatman/fragment/ChatList.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.chatman.fragment; - - -import android.content.Context; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.chatman.R; -import com.chatman.adapter.ChatListAdapter; - -import java.util.ArrayList; -import java.util.List; - -/** - * A simple {@link Fragment} subclass. - */ -public class ChatList extends Fragment { - - private RecyclerView recycler; - private ChatListAdapter adapter; - private List<com.chatman.model.ChatList> chatLists; - private Context context; - - public ChatList() { - - } - - public void setContext(Context context) { - this.context = context; - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // Inflate the layout for this fragment - - View rootView = inflater.inflate(R.layout.fragment_chat_list, container, false); - recycler = rootView.findViewById(R.id.chat_list_rv); - LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); - linearLayoutManager.setReverseLayout(true); - linearLayoutManager.setStackFromEnd(true); - recycler.setLayoutManager(linearLayoutManager); - getChatLists(); - adapter = new ChatListAdapter(chatLists); - recycler.setAdapter(adapter); - - return rootView; - } - - private List<com.chatman.model.ChatList> getChatLists() { - chatLists = new ArrayList<>(); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.priagung, -// "Priagung Satyagama", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new com.chatman.model.ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama", -// "Eh, gmn gmn?" -// )); - return chatLists; - } - -} diff --git a/android/app/src/main/java/com/chatman/HomeFragment.java b/android/app/src/main/java/com/chatman/fragment/HomeFragment.java similarity index 94% rename from android/app/src/main/java/com/chatman/HomeFragment.java rename to android/app/src/main/java/com/chatman/fragment/HomeFragment.java index 88b9c85b4921a3e6955d3096b95ddcb1369942b1..653b8479631ccf0f7416a27fd201f1ef4ba2c879 100644 --- a/android/app/src/main/java/com/chatman/HomeFragment.java +++ b/android/app/src/main/java/com/chatman/fragment/HomeFragment.java @@ -1,4 +1,4 @@ -package com.chatman; +package com.chatman.fragment; import android.content.Context; import android.net.Uri; @@ -13,6 +13,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.chatman.R; import com.chatman.adapter.ChatListAdapter; import com.chatman.helper.PreferencesHelper; import com.chatman.model.ChatList; @@ -258,22 +259,7 @@ public class HomeFragment extends Fragment { } }); -// chatLists = new ArrayList<>(); -// chatLists.add(new ChatList( -// R.drawable.rama, -// "Yusuf Rahmat Pratama5", -// "Eh, gmn gmn?" -// )); -// chatLists.add(new ChatList( -// R.drawable.priagung, -// "Priagung Satyagama6", -// "Woi sini ke sekre 2 temani diriku yang kesepian" -// )); -// chatLists.add(new ChatList( -// R.drawable.ilham, -// "Ilham Firdausi Putra", -// "Mantap betul" -// )); + return chatLists; } } diff --git a/android/app/src/main/java/com/chatman/ProfileFragment.java b/android/app/src/main/java/com/chatman/fragment/ProfileFragment.java similarity index 97% rename from android/app/src/main/java/com/chatman/ProfileFragment.java rename to android/app/src/main/java/com/chatman/fragment/ProfileFragment.java index 811676fda257047a1239b0bcee4d6776acceb424..c8a2aaf91c303900c0e9b93549f184770eca1534 100644 --- a/android/app/src/main/java/com/chatman/ProfileFragment.java +++ b/android/app/src/main/java/com/chatman/fragment/ProfileFragment.java @@ -1,4 +1,4 @@ -package com.chatman; +package com.chatman.fragment; import android.content.Context; import android.content.Intent; @@ -15,10 +15,10 @@ import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; +import com.chatman.activity.AuthActivity; +import com.chatman.R; import com.chatman.helper.PreferencesHelper; -import org.w3c.dom.Text; - /** * A simple {@link Fragment} subclass. diff --git a/android/app/src/main/java/com/chatman/service/PushNotificationService.java b/android/app/src/main/java/com/chatman/service/PushNotificationService.java index bb0a750661ba4b90ce8e044f8245189d3dc5aaca..9c1c46a98cc4053babf975ff1e32cefd3210cfb3 100644 --- a/android/app/src/main/java/com/chatman/service/PushNotificationService.java +++ b/android/app/src/main/java/com/chatman/service/PushNotificationService.java @@ -1,29 +1,21 @@ package com.chatman.service; -import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; -import android.app.Service; -import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Build; -import android.os.IBinder; import android.support.v4.app.NotificationCompat; import android.support.v4.content.ContextCompat; import android.util.Log; -import com.chatman.MainActivity; +import com.chatman.activity.MainActivity; import com.chatman.R; -import com.chatman.helper.FirebaseHelper; import com.chatman.helper.PreferencesHelper; -import com.google.firebase.FirebaseApp; import com.google.firebase.messaging.FirebaseMessagingService; import com.google.firebase.messaging.RemoteMessage; diff --git a/android/app/src/main/res/layout/activity_auth.xml b/android/app/src/main/res/layout/activity_auth.xml index 6d6600c5104ee66bcd672f5982b7e1a2ba1efa2e..0e21a85ff0926a019bfdb2f54c693294f3d5bfc7 100644 --- a/android/app/src/main/res/layout/activity_auth.xml +++ b/android/app/src/main/res/layout/activity_auth.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".AuthActivity"> + tools:context=".activity.AuthActivity"> <LinearLayout android:id="@+id/auth_container" diff --git a/android/app/src/main/res/layout/app_bar_main.xml b/android/app/src/main/res/layout/app_bar_main.xml index 7e1101de988e36814a783554a4faeb75abd9a134..11fb9a356fab98846dd634d1cab69b681e24c220 100644 --- a/android/app/src/main/res/layout/app_bar_main.xml +++ b/android/app/src/main/res/layout/app_bar_main.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + tools:context=".activity.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" diff --git a/android/app/src/main/res/layout/content_main.xml b/android/app/src/main/res/layout/content_main.xml index 9ea0d2e694249ede260dbf8152f702c16ffd94d7..a9e93f84c8e0fb179c6b278af09a2b63454d0344 100644 --- a/android/app/src/main/res/layout/content_main.xml +++ b/android/app/src/main/res/layout/content_main.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" - tools:context=".MainActivity" + tools:context=".activity.MainActivity" tools:showIn="@layout/app_bar_main"> <FrameLayout diff --git a/android/app/src/main/res/layout/fragment_bot.xml b/android/app/src/main/res/layout/fragment_bot.xml index cc353d20993ca1bb0a125141b0ab740ef08a97ca..55402a91f80ef938aba3944ce7de2a1e6c74a5a3 100644 --- a/android/app/src/main/res/layout/fragment_bot.xml +++ b/android/app/src/main/res/layout/fragment_bot.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - tools:context=".BotFragment"> + tools:context=".fragment.BotFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/chat_bot_room_rv" diff --git a/android/app/src/main/res/layout/fragment_chat_bot.xml b/android/app/src/main/res/layout/fragment_chat_bot.xml deleted file mode 100644 index 037c7383712b3d07021c9cc79fb9fc69ad1bf870..0000000000000000000000000000000000000000 --- a/android/app/src/main/res/layout/fragment_chat_bot.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - tools:context=".fragment.ChatBot"> - - <!-- TODO: Update blank fragment layout --> - <TextView - android:id="@+id/tv_hello" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="@string/hello_blank_fragment" /> - -</FrameLayout> \ No newline at end of file diff --git a/android/app/src/main/res/layout/fragment_chat_list.xml b/android/app/src/main/res/layout/fragment_chat_list.xml deleted file mode 100644 index a8365f88fbe7989ecf3540ce7c9a7f41f1788bb3..0000000000000000000000000000000000000000 --- a/android/app/src/main/res/layout/fragment_chat_list.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - tools:context=".fragment.ChatList"> - - <android.support.constraint.ConstraintLayout - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior" - tools:context=".MainActivity" - tools:showIn="@layout/app_bar_main"> - - <android.support.v7.widget.RecyclerView - android:id="@+id/chat_list_rv" - android:layout_width="match_parent" - android:layout_height="match_parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent"> - - </android.support.v7.widget.RecyclerView> - - </android.support.constraint.ConstraintLayout> - -</FrameLayout> \ No newline at end of file diff --git a/android/app/src/main/res/layout/fragment_home.xml b/android/app/src/main/res/layout/fragment_home.xml index bfe64f4dbf9a7514040c68a1bc2492a4a365f321..7722c349fcac9a5ca1d5238c059186d37f4da85b 100644 --- a/android/app/src/main/res/layout/fragment_home.xml +++ b/android/app/src/main/res/layout/fragment_home.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - tools:context=".BotFragment"> + tools:context=".fragment.BotFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/chat_list_rv" diff --git a/android/app/src/main/res/layout/fragment_profile.xml b/android/app/src/main/res/layout/fragment_profile.xml index 33e6c4e799f1a3511cc692a66c09a96696b109d1..ff028ca126150f91cf56989751b71d4da789c52f 100644 --- a/android/app/src/main/res/layout/fragment_profile.xml +++ b/android/app/src/main/res/layout/fragment_profile.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" - tools:context=".ProfileFragment" + tools:context=".fragment.ProfileFragment" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical">