From b85293dd418b35138474a53390c82824dd50d6a6 Mon Sep 17 00:00:00 2001 From: eagskunst Date: Sun, 29 Jul 2018 01:09:06 -0400 Subject: [PATCH] Backend changes and search added --- README.md | 39 +++++- app/src/main/AndroidManifest.xml | 15 +-- app/src/main/assets/Urls.json | 4 +- .../gamingnews/Adapter/NewsAdapter.java | 22 ++++ .../Fragments/NewsListFragment.java | 75 ++++++++--- .../gamingnews/Utility/ParserMaker.java | 8 +- .../gamingnews/views/MainActivity.java | 123 +++++++++++++----- .../gamingnews/views/WebViewActivity.java | 2 + app/src/main/res/drawable-hdpi/ic_all.png | Bin 0 -> 591 bytes .../res/drawable-hdpi/ic_desktop_windows.png | Bin 0 -> 167 bytes .../main/res/drawable-hdpi/ic_nintendo.png | Bin 0 -> 500 bytes .../main/res/drawable-hdpi/ic_playstation.png | Bin 0 -> 549 bytes app/src/main/res/drawable-hdpi/ic_xbox.png | Bin 0 -> 1005 bytes app/src/main/res/drawable-mdpi/ic_all.png | Bin 0 -> 427 bytes .../res/drawable-mdpi/ic_desktop_windows.png | Bin 0 -> 128 bytes .../main/res/drawable-mdpi/ic_nintendo.png | Bin 0 -> 361 bytes .../main/res/drawable-mdpi/ic_playstation.png | Bin 0 -> 386 bytes app/src/main/res/drawable-mdpi/ic_xbox.png | Bin 0 -> 681 bytes app/src/main/res/drawable-xhdpi/ic_all.png | Bin 0 -> 609 bytes .../res/drawable-xhdpi/ic_desktop_windows.png | Bin 0 -> 178 bytes .../main/res/drawable-xhdpi/ic_nintendo.png | Bin 0 -> 651 bytes .../res/drawable-xhdpi/ic_playstation.png | Bin 0 -> 386 bytes app/src/main/res/drawable-xhdpi/ic_xbox.png | Bin 0 -> 1308 bytes app/src/main/res/drawable-xxhdpi/ic_all.png | Bin 0 -> 1097 bytes .../drawable-xxhdpi/ic_desktop_windows.png | Bin 0 -> 246 bytes .../main/res/drawable-xxhdpi/ic_nintendo.png | Bin 0 -> 1042 bytes .../res/drawable-xxhdpi/ic_playstation.png | Bin 0 -> 1125 bytes app/src/main/res/drawable-xxhdpi/ic_xbox.png | Bin 0 -> 1960 bytes app/src/main/res/drawable/mediahandler.jpg | Bin 48251 -> 0 bytes app/src/main/res/layout/activity_main.xml | 16 ++- .../main/res/layout/fragment_news_list.xml | 2 - app/src/main/res/menu/navigation_menu.xml | 10 +- app/src/main/res/menu/search_menu.xml | 12 ++ app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/searchable.xml | 5 + 36 files changed, 257 insertions(+), 78 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_all.png create mode 100644 app/src/main/res/drawable-hdpi/ic_desktop_windows.png create mode 100644 app/src/main/res/drawable-hdpi/ic_nintendo.png create mode 100644 app/src/main/res/drawable-hdpi/ic_playstation.png create mode 100644 app/src/main/res/drawable-hdpi/ic_xbox.png create mode 100644 app/src/main/res/drawable-mdpi/ic_all.png create mode 100644 app/src/main/res/drawable-mdpi/ic_desktop_windows.png create mode 100644 app/src/main/res/drawable-mdpi/ic_nintendo.png create mode 100644 app/src/main/res/drawable-mdpi/ic_playstation.png create mode 100644 app/src/main/res/drawable-mdpi/ic_xbox.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_all.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_desktop_windows.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_nintendo.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_playstation.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_xbox.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_all.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_desktop_windows.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_nintendo.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_playstation.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_xbox.png delete mode 100644 app/src/main/res/drawable/mediahandler.jpg create mode 100644 app/src/main/res/menu/search_menu.xml create mode 100644 app/src/main/res/xml/searchable.xml diff --git a/README.md b/README.md index 0620a55..d9af69b 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,41 @@ See changelog on develop branch for not-official features. 2. Select File -> New -> Project from Version Control -> GitHub 3. Enter your github username and password. 4. Copy this repo's clone url. -5. Select the repository and hit clone. \ No newline at end of file +5. Select the repository and hit clone. + + +# Changelog + +**-27/7/2018:** Added the posibility to search articles. Added custom navigation view icons. Erased one es/PS4 link. + +**-19/7/2018:** Finished (my) proper navigation between fragments. Added also an int[] to check NavigationView actual item when onBackPressed(). + +**-15/7/2018:** Fixed Exception caused by refreshLayout.setRefreshing(false); +Implemented a better navigation between fragments but still is unfinished. + + +**-14/7/2018:** + Added a drawer layout with a navigation view. + + Changed MainActivity's all in one for a Fragment that can handle all categories of news. + + Changed ParserMaker's use of variable Activity in order to avoid a NullException. Now use an interface. + + Created Urls.json file for reading urls depending on language. + + Added GSON library for Json reading. + + Created Categories inside Models package. + + Created LoadUrls for handling the reading of the Json file. + + Created WebViewActivity. + + Deleted icon in toolbar.xml layout. Now is added with toolbar.setIcon() + + Changed harcoded strings and dimens. + +**-11/7/2018:** Changed colors. Added app icon inside toolbar. Added a Floating Action Button for back to top compability. +**-2/7/2018:** Bugfixes for Locale and proper onBackPressed when paserMaker.isRunning = true. Change min. version for Android 4.1 Improvement of ParserMaker + +**-27/6/2018:** First commit. diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fe9b738..b5a290f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,23 +12,22 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - + - + android:parentActivityName=".views.MainActivity"> + android:value=".views.MainActivity" /> diff --git a/app/src/main/assets/Urls.json b/app/src/main/assets/Urls.json index 3d4fdb9..e76dc9e 100644 --- a/app/src/main/assets/Urls.json +++ b/app/src/main/assets/Urls.json @@ -11,8 +11,7 @@ "http://feeds.feedburner.com/SCEEBlogES", "https://puregaming.es/juegos-ps4/feed/", "https://www.egamers.com/category/ps4/feed/", - "http://es.ign.com/ps4.xml", - "http://www.laps4.com/foro/external.php?type=RSS2&forumids=2" + "http://es.ign.com/ps4.xml" ], "xboxO_urls":[ "https://puregaming.es/juegos-xbox-one/feed/", @@ -33,7 +32,6 @@ { "language": "en", "all_urls": [ - "https://www.gamespot.com/feeds/news/", "https://www.vg247.com/feed/", "https://www.eurogamer.net/?format=rss", "https://kotaku.com/tag/gaming/rss", diff --git a/app/src/main/java/com/example/emmanuel/gamingnews/Adapter/NewsAdapter.java b/app/src/main/java/com/example/emmanuel/gamingnews/Adapter/NewsAdapter.java index f561b97..4c83764 100644 --- a/app/src/main/java/com/example/emmanuel/gamingnews/Adapter/NewsAdapter.java +++ b/app/src/main/java/com/example/emmanuel/gamingnews/Adapter/NewsAdapter.java @@ -16,12 +16,14 @@ import com.squareup.picasso.Picasso; +import java.util.ArrayList; import java.util.List; public class NewsAdapter extends RecyclerView.Adapter { private final String TAG = "MainActivity"; private List newsList; + private List newsListCopy = new ArrayList<>(); private NewsViewHolder.OnItemClickListener onItemClickListener; public NewsAdapter(List newsList, NewsViewHolder.OnItemClickListener onItemClickListener) { @@ -56,6 +58,26 @@ public int getItemCount() { return newsList.size(); } + public List getNewsListCopy() { + return newsListCopy; + } + + + public void filter(String text) { + newsList.clear(); + if(text.isEmpty()){ + newsList.addAll(newsListCopy); + } else{ + text = text.toLowerCase(); + for(NewsModel item: newsListCopy){ + if(item.getTitle().toLowerCase().contains(text)){ + newsList.add(item); + } + } + } + notifyDataSetChanged(); + } + public static class NewsViewHolder extends RecyclerView.ViewHolder{ diff --git a/app/src/main/java/com/example/emmanuel/gamingnews/Fragments/NewsListFragment.java b/app/src/main/java/com/example/emmanuel/gamingnews/Fragments/NewsListFragment.java index 06a8930..26cc514 100644 --- a/app/src/main/java/com/example/emmanuel/gamingnews/Fragments/NewsListFragment.java +++ b/app/src/main/java/com/example/emmanuel/gamingnews/Fragments/NewsListFragment.java @@ -14,8 +14,11 @@ import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.SearchView; import android.util.Log; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; @@ -46,16 +49,18 @@ public NewsListFragment() { // Required empty public constructor } - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); + public static NewsListFragment newInstance(String[] urls) { + Bundle args = new Bundle(); + args.putStringArray("urls", urls); + NewsListFragment fragment = new NewsListFragment(); + fragment.setArguments(args); + return fragment; } - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_news_list,container,false); String[] urls; recyclerView = view.findViewById(R.id.recyclerview); @@ -74,7 +79,14 @@ public void onClick(View view) { ParserMaker.OnNewsFinishListener newsFinishListener = new ParserMaker.OnNewsFinishListener() { @Override public void onNewsFinish() { - refreshLayout.setRefreshing(false); + if(getActivity() != null){ + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + refreshLayout.setRefreshing(false); + } + }); + } parserMaker.setRunning(false); } }; @@ -82,10 +94,10 @@ public void onNewsFinish() { parserMaker = new ParserMaker(newsFinishListener,urls, Toast.makeText(getActivity(), R.string.cant_get_articles, Toast.LENGTH_SHORT), this.newsAdapter,this.newsList); - - parserMaker.create(); - - refreshLayout.setRefreshing(true); + if(newsList.isEmpty()){ + parserMaker.create(); + refreshLayout.setRefreshing(true); + } manageRefreshLayout(parserMaker); return view; } @@ -97,6 +109,12 @@ public void onButtonPressed(Uri uri) { } } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + setHasOptionsMenu(true); + super.onCreate(savedInstanceState); + } + @Override public void onAttach(Context context) { super.onAttach(context); @@ -123,19 +141,41 @@ public void onDestroy() { } @Override - public void onResume() { - super.onResume(); - //parserMaker.setActivity(parserMaker.isRunning() ? getActivity():null); + public void onDestroyView() { + super.onDestroyView(); } @Override - public void onPause() { - super.onPause(); - //parserMaker.setActivity(parserMaker.isRunning() ? getActivity():null); - } + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.search_menu,menu); + SearchView searchView = (SearchView) menu.findItem(R.id.searchMenu).getActionView(); + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String s) { + if(!parserMaker.isRunning()){ + newsAdapter.filter(s); + return true; + } + else{ + return false; + } + } + @Override + public boolean onQueryTextChange(String s) { + if(!parserMaker.isRunning()){ + newsAdapter.filter(s); + return true; + } + else{ + return false; + } + } + }); + super.onCreateOptionsMenu(menu, inflater); + } private void manageRecyclerView(boolean autoMeasure, boolean fixedSize) { RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext()); @@ -236,4 +276,5 @@ public interface OnFragmentInteractionListener { // TODO: Update argument type and name void onFragmentInteraction(Uri uri); } + } diff --git a/app/src/main/java/com/example/emmanuel/gamingnews/Utility/ParserMaker.java b/app/src/main/java/com/example/emmanuel/gamingnews/Utility/ParserMaker.java index a1ae53a..076fb0e 100644 --- a/app/src/main/java/com/example/emmanuel/gamingnews/Utility/ParserMaker.java +++ b/app/src/main/java/com/example/emmanuel/gamingnews/Utility/ParserMaker.java @@ -91,6 +91,7 @@ public void onTaskCompleted(ArrayList
list) { orderListRecentFirst(); } newsAdapter.notifyDataSetChanged(); + newsAdapter.getNewsListCopy().addAll(newsList); refreshingStatus(); } } @@ -141,13 +142,6 @@ public int compare(NewsModel newsModel, NewsModel t1) { private void refreshingStatus(){ onNewsFinishListener.onNewsFinish(); - /*activity.runOnUiThread(new Runnable() { - @Override - public void run() { - ((SwipeRefreshLayout)activity.findViewById(R.id.refreshlayout)).setRefreshing(false); - running = false; - } - });*/ } public void setRunning(boolean running) { diff --git a/app/src/main/java/com/example/emmanuel/gamingnews/views/MainActivity.java b/app/src/main/java/com/example/emmanuel/gamingnews/views/MainActivity.java index 4f44876..ee520b5 100644 --- a/app/src/main/java/com/example/emmanuel/gamingnews/views/MainActivity.java +++ b/app/src/main/java/com/example/emmanuel/gamingnews/views/MainActivity.java @@ -3,12 +3,16 @@ import android.net.Uri; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; +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.os.Bundle; import android.support.v7.widget.Toolbar; import android.util.Log; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ProgressBar; @@ -17,10 +21,10 @@ import com.example.emmanuel.gamingnews.Objects.LoadUrls; import com.example.emmanuel.gamingnews.R; - - import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; public class MainActivity extends AppCompatActivity implements NewsListFragment.OnFragmentInteractionListener { @@ -29,21 +33,25 @@ public class MainActivity extends AppCompatActivity implements NewsListFragment. private static final String[] News_TAG = {"NewsListFragment_All","NewsListFragment_PS4","NewsListFragment_XboxO", "NewsListFragment_Switch","NewsListFragment_PC" }; + private static final int[] tab_id ={R.id.all_news,R.id.ps4_news,R.id.xboxo_news,R.id.switch_news,R.id.PC_news}; + private String currentFrag; private DrawerLayout drawerLayout; private ProgressBar progressBar; private LoadUrls loadUrls; private NavigationView navigationView; + private List navigationHistory = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + Toolbar toolbar = findViewById(R.id.toolbar); navigationView = findViewById(R.id.navigation_view); showToolbar(toolbar, R.string.app_name, false); startDrawerLayout(toolbar); - InputStream is = null; + InputStream is; loadUrls = null; try { is = getAssets().open("Urls.json"); @@ -53,28 +61,53 @@ protected void onCreate(Bundle savedInstanceState) { e.printStackTrace(); } startNavigationView(); - makeFragmentTransaction(loadUrls.getAllUrls(), R.id.all_news,News_TAG[0]); + getSupportFragmentManager().beginTransaction() + .replace(R.id.container, NewsListFragment.newInstance(loadUrls.getAllUrls()), News_TAG[0]) + .addToBackStack(News_TAG[0]) + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) + .commit(); + currentFrag = News_TAG[0]; + navigationHistory.add(News_TAG[0]); + navigationView.setCheckedItem(tab_id[0]); } + @Override + protected void onDestroy() { + super.onDestroy(); + navigationHistory.clear(); + } @Override public void onBackPressed() { - NewsListFragment fragment = null; - for(int i = 0;i<5;i++){ - fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(News_TAG[i]); - if(fragment!=null){ - break; - } + NewsListFragment fragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(currentFrag); + int size = navigationHistory.size() - 2; + if(drawerLayout.isDrawerOpen(GravityCompat.START)){ + drawerLayout.closeDrawers(); } - if (getSupportFragmentManager().getBackStackEntryCount() > 1) { - getSupportFragmentManager().popBackStack(); - } else { - if (fragment.getParserMaker().isRunning()) { + else if(fragment.getTag().equals(News_TAG[0])){ + if(fragment.getParserMaker().isRunning()){ moveTaskToBack(true); - } else { + } + else{ + getSupportFragmentManager().popBackStackImmediate(null,FragmentManager.POP_BACK_STACK_INCLUSIVE); finish(); } } + else{ + if(getSupportFragmentManager().findFragmentByTag(navigationHistory.get(size)).getTag().equals(currentFrag)){ + currentFrag = getSupportFragmentManager().findFragmentByTag(navigationHistory.get(size-1)).getTag(); + } + else{ + currentFrag = getSupportFragmentManager().findFragmentByTag(navigationHistory.get(size)).getTag(); + } + int i = 0; + while(!currentFrag.equals(News_TAG[i])){ + i++; + } + navigationView.setCheckedItem(tab_id[i]); + hideAndShow(fragment,(NewsListFragment)getSupportFragmentManager().findFragmentByTag(currentFrag)); + navigationHistory.remove(fragment.getTag()); + } } private void showToolbar(Toolbar toolbar, int title, boolean upButton) { @@ -104,19 +137,19 @@ private void startNavigationView() { public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.all_news: - makeFragmentTransaction(loadUrls.getAllUrls(), R.id.all_news,News_TAG[0]); + makeFragmentTransaction(loadUrls.getAllUrls(),tab_id[0],News_TAG[0]); break; case R.id.ps4_news: - makeFragmentTransaction(loadUrls.getPs4Urls(), R.id.all_news,News_TAG[1]); + makeFragmentTransaction(loadUrls.getPs4Urls(), tab_id[1],News_TAG[1]); break; case R.id.xboxo_news: - makeFragmentTransaction(loadUrls.getXboxOUrls(), R.id.all_news,News_TAG[2]); + makeFragmentTransaction(loadUrls.getXboxOUrls(), tab_id[2],News_TAG[2]); break; case R.id.switch_news: - makeFragmentTransaction(loadUrls.getSwitchUrls(), R.id.all_news,News_TAG[3]); + makeFragmentTransaction(loadUrls.getSwitchUrls(), tab_id[3],News_TAG[3]); break; case R.id.PC_news: - makeFragmentTransaction(loadUrls.getPcUrls(), R.id.all_news,News_TAG[4]); + makeFragmentTransaction(loadUrls.getPcUrls(), tab_id[4],News_TAG[4]); break; } return true; @@ -124,22 +157,52 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { }); } - private void makeFragmentTransaction(String[] urls, int item, String TAG) { - Bundle bundle = new Bundle(); - bundle.putStringArray("urls", urls); - NewsListFragment newsFragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(TAG); + @Override + public boolean onCreateOptionsMenu(Menu menu) { + return super.onCreateOptionsMenu(menu); + } + + private void makeFragmentTransaction(String[] urls, int item, String _TAG) { + NewsListFragment newsFragment = (NewsListFragment) getSupportFragmentManager().findFragmentByTag(_TAG); if(newsFragment == null){ - newsFragment = new NewsListFragment(); + newsFragment = NewsListFragment.newInstance(urls); + getSupportFragmentManager().beginTransaction() + .hide(getSupportFragmentManager().findFragmentByTag(currentFrag)) + .add(R.id.container,newsFragment,_TAG) + .addToBackStack(_TAG) + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) + .commit(); + currentFrag = _TAG; + navigationHistory.add(_TAG); } - newsFragment.setArguments(bundle); - getSupportFragmentManager().beginTransaction() - .replace(R.id.container, newsFragment, TAG) - .addToBackStack(null) - .commit(); + else if(!currentFrag.equals(_TAG)){ + hideAndShow((NewsListFragment)getSupportFragmentManager().findFragmentByTag(currentFrag),newsFragment); + if(!navigationHistory.contains(_TAG)){ + navigationHistory.add(_TAG); + } + else{ + int i = navigationHistory.size() - 1; + while(!navigationHistory.get(i).equals(_TAG)){ + navigationHistory.remove(i); + i--; + } + } + currentFrag = _TAG; + } + Log.d(TAG,"Size: "+navigationHistory.size()); + navigationView.setCheckedItem(item); drawerLayout.closeDrawers(); } + private void hideAndShow(NewsListFragment toHide,NewsListFragment toShow) { + getSupportFragmentManager().beginTransaction() + .hide(toHide) + .show(toShow) + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) + .commit(); + } + @Override public void onFragmentInteraction(Uri uri) { diff --git a/app/src/main/java/com/example/emmanuel/gamingnews/views/WebViewActivity.java b/app/src/main/java/com/example/emmanuel/gamingnews/views/WebViewActivity.java index 9b6a0c5..12b9ac5 100644 --- a/app/src/main/java/com/example/emmanuel/gamingnews/views/WebViewActivity.java +++ b/app/src/main/java/com/example/emmanuel/gamingnews/views/WebViewActivity.java @@ -61,6 +61,8 @@ public void onClick(View view) { private void loadUrl(String url) { progressBar.setVisibility(View.VISIBLE); WebSettings webSettings = webView.getSettings(); + webSettings.setSupportZoom(true); + webSettings.setBuiltInZoomControls(true); webSettings.setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient(){ @Override diff --git a/app/src/main/res/drawable-hdpi/ic_all.png b/app/src/main/res/drawable-hdpi/ic_all.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a206f90b759547764a2b1399f52bfffa8dc25f GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Fo}7(IEGZ*dOQ8Bwo9Ny`+BD} zQ{HNr326#yYDdmkaj;4Dq*s`k*uG5xSve`1){!@7=;WxhPH3IjDe{xKMkV#(?XT8* zw)-u&{yy*Zos%oRUkNsTzw`NH%g^_WpGR!Vjs7p$%^J~wf{fG}CUNgNC}Y8J{=hi_ z^90_WCaYw|DMlOSALOk5$e4D7>7N(FQf`|+7oVhlb5NPU;AL5Hs_CS44x8wWqL(Ss zM-HlZq&$cf;NJFdW5M4jCXKybhoc1+?@D5y8}bQTxkOc0k&K{qh5*Jwbm$E9(vgJN$8Z z5S%5je9O)v$(T0*ffsTVE_gjI)A-2OwO#9DsC}c*(t}Id9QHOksP;y$K9a2&_j0@R z&ZQT&UQt*$(W#k@Nj*Vkj%H@D+s7%N{;cUcuZGS$~2$ZfCH5jeh*`kb4Qsr-Lgm{g_uaJMGlZg973A6jhf_ zj{fU1q5cuuhk3557MR`;HTDnkudOr+%6`2_=R$ b&DL+%xxI90Eu$$gp)h#5`njxgN@xNA222fB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_desktop_windows.png b/app/src/main/res/drawable-hdpi/ic_desktop_windows.png new file mode 100644 index 0000000000000000000000000000000000000000..d913a765ba0b5dd4bcad2c98748d1eed7a8afee1 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8o~MgrNX4z>1c_${rahE79N+do zSgCRrC&I4)-6wQlBG z8G0os>PLOjgf`0yZ4Y&3UcDIKX3P_Iq=j*lTGxRDBaZMDJj~5)HVh0ETjPFQUv%au P&}IftS3j3^P63L*um@q)1 z(k`gfOBVoC!Y@b}09CsDNhJaRvKsqx|2vgP0H8{>9ABgifGS-@fyxsGNb2CLO4I<# zQNRn70ie|NXO##7Kn3#f-tO^6n*<8MSK$e6iW^ zDG$7BI8jjWi2&g_OP0H&6eD{WAzdjO~sEa)S$02t`X#{Q^McLACQ z94{CiaCQQqO4!tp1!&HK$|pSmRe)qy3iwhBD%k^oeKDNUMX~@G{Ijc`P9?hllC9O_ q3n^5x58(a6SNwMX7Z(?of6p6VA>EfT;fYNE0000+w|_6H$Q6L)%n(E^X@xu&iBl@_ucy(4i<~WVzF5NM|EHTcy%?<3KGNvSOGnt zOh*GUac~FbK$DIJlDPrxIve<70~G6EU=h@S9fPr5P+)fheKbC)7$4T%z@yy__)-{1 zP>X48pqUNi*+9L{20lTd&IZ=)vI=!(VBj_1yVnX30;eFB!axf+q@C(LSk2e+sY*Jo zFwiT-x@br02Qy$9guy(R0^OhiICGtJrG-j=DXvdY>;Z^c+~|qcS^%DGl6F${&M0Z4 z3cpb+i1uhRIS@aB}88<_QAKweNie7xw7P;Li7(xDmWtn8Yz!*@AZb`2{B?@;Io{@T1sZ1Q{ge)*?9XRAD*t8yh zF90JKAxF=EW7L9UZi3c|vhfAF2?#K{6CC;o!Tttj{tfy5;Mpg5wnivCrqXV$K}$bI z1->W%_kK3{i5}@fWwyaTm^8MEZ~(Ts0BqwJf_otcO?&Y>jiI$1dSJ@<&4rHaN(6cr zEj%~`o;HJRtsQ$y^CWc0Rp_!RmB6&o#Te^Ll9Dlp)RVH-Nl z`H}B!DVdHQy6+7)t0rFX-PUY;ap~lPr}R zfGk4-=tF@0c)m({t~E0Qle#~CHe$x{Umnv^<5Jk?dETek@lsy!GnA)@<0Q@@) z9ZT}R?Y?sXPj-hKl;#_6t))tkMhy?p^8vJ3Eh&1tMA8K@7EfGR2b=F+3z+DNh6gb2 ze1TwF;ZKV@0>P_zf|<7@ZAF8Q2e$fy$gc2txJq%Hba}!jCwMVrhqQQ@lLBAM!JfUdK8WoC~g>0yp z-SjkT9{vUct;Mv#kL1)_(HnW0?4D;Xm}CZ_;>?b?FOO=i8~x1EUdYcHLa@Nx@V z@`&Itl)UQ)#ihKDygKB b%7l^sb|ef##JGsu00000NkvXXu0mjf#PrvU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_all.png b/app/src/main/res/drawable-mdpi/ic_all.png new file mode 100644 index 0000000000000000000000000000000000000000..2bdc923730046033892cc53e219c78c16fc17e01 GIT binary patch literal 427 zcmV;c0aX5pP)z7{~D`UVjSfz)5nTl%qJw&54_>J<*;yaCK42$${kH;9{dF7byp6PdIIHRFtyG z!Nmzh>Ggfgg(uCVT8eGe|0xYXeWz1qsuH`BR+rgn#_lUM{0Vs8N zl@52vNPR)B8L3Y*_=n7DS4`WC9biB;=GCl(>T^ED;77Q|3C?hdQ`Np@2gs_%q3D-e z4=hN1C4)c6Ge=ZiF9N*D_j5bIpz54+%s?*146LAt8{Eq}*wkyo4$y#iX^i%5V6A~b z>eH@)7WBll&ByJ6Rn?({arDWxROK#M#F|z2gpRlX%`#<44~&AWC#YnnOeUR#oj7pZ zxQoWbbKRI$Y&-6c_WwjhFC)q*7O;;c45xa*aPG?iwkLnV6x#jk*az?dd;lLH&KIe` VJ?7f!U9tcG002ovPDHLkV1jdl%DVsn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_desktop_windows.png b/app/src/main/res/drawable-mdpi/ic_desktop_windows.png new file mode 100644 index 0000000000000000000000000000000000000000..09607cb5d0740ca5a9d2bb4f04ccdc963d25ae19 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1cTX3`kcwN$2@BXcQYub!AFiMvJEkKZF)B9#LUCaJ4r};%bBQVeLi2_qjXR>Xk0P=4OkpnI`-?;F9SA>y}?q bD|i{Q7-xSxX|YrlXe5KDtDnm{r-UW|l_V>9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_nintendo.png b/app/src/main/res/drawable-mdpi/ic_nintendo.png new file mode 100644 index 0000000000000000000000000000000000000000..3801164db973da873285e8ae6b3b40ae6b8c4fce GIT binary patch literal 361 zcmV-v0ha!WP)TQT0fOYc2*B=9>0chEE8e-p9h6x!CkR7UY;ov;!Upam{-q#CZlQ7UpWk zr}vQnXCF3w4~038QO5y7oTncOa@q`}1I_@0dGl={A-(}~00@K9$$&Zlh)+Ed;W8OW z2Y~Rpi{cF21L*(|E*xkFoO~q6qce~W0O1w)6&N@M(g9~4336r7!2ulG9td$R!{LbI zkNNmiY3l%C&J7QRc(j1*6F5R);UhuL$uxBUNFHcd9-inpPICu5lVad{EX28nlr%zB z2Y}TGa2bM2!+~-DG%Csm)B!g{M0kN>n+D7Q;MS86rzNP3FklVzUt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_playstation.png b/app/src/main/res/drawable-mdpi/ic_playstation.png new file mode 100644 index 0000000000000000000000000000000000000000..45ae72ef13e05819e44f98b3a61c2aa1ca7c557f GIT binary patch literal 386 zcmV-|0e$|7P)7`-F}c!$CNHZ8&i)SXJ> z0Asqo3M0__*ZaVlHjH5e-_8h%YJ3iFX6;M6bqM2WjV1MxnnsGe>`?3+&$V9|N`E(~Z#hM}f2cE=#5B`qM{*KqdDr3p|mRSQS34UeW;_x=~tAy|V4 zXI-x9J)BtmNMf_HH{5EoPR}2&&V0fLSMVS2c8qo!KHRElkWs+`zWl# gvUV*fD5&%F10JS?w#}bFLI3~&07*qoM6N<$f~WbVX8-^I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_xbox.png b/app/src/main/res/drawable-mdpi/ic_xbox.png new file mode 100644 index 0000000000000000000000000000000000000000..aa939430206dc8d947e3811ded4c7fa84f4063bd GIT binary patch literal 681 zcmV;a0#^NrP)4!DPn^d%ti<;r2nKcv6imlomd6J!;&Z}FXfMo%gyBE7cUfnhNQtstL{h{;y z3dvi17!E7YUv3z+?!DP|bJYO^QxS4$uOpY*g&yh8>eZHH4? zIvZ_;Jf>E#i?KymDFk*d?GI23W1F`iDTVI~r5x>MZKI z^X5*5m-#QlT^`-||FhuD4;N$K;NRyj0WHA?4!mab)t;Q^>3qpJ)79ww647djP0NdN z7*?cs@Gto*$^7l|JlixSRtH!0y)gw3$~f0osW7a#;(1$}>z~TQopM|ZQ<+{q=4!V0 ztk7>^G$_mb;b7!p8#K9}ZN9(O4*g40`s2PH^J1_tSk4yj89KdsRgG=ugYG-&h72vs zxEf}9e~9#+YnQ3nH?8<4i-J#X+;Y3G=~@ie_zv&OT3tL#W;>tq!vaU;1YOpK>9*C% zZO(i5zvjE%Gh=?`{`+MwjTo%>c)#czu6w=l%a@&T`UmT6PISCD!6322SLM%{>Y1^> zd=?eje0F@+(#X@0$K~!2&gP)nTI}FjCVFE@hUkqII?bO&_OhP|W!Mt@MeRn|U2dPC z4dOFeZt_g^m><4JTI8O0;%7$POXVEG{Y&;Zz0y7ZebqN@o9&BEaa{Gt=i=<#eZkW^ z%UMxTdC#>)=QyAJ;Qc6Z;DGf@wM}Pqw;s*?^|d;sf2YOfLrIHE{G~qj?0?)RzC=C9 zSxr-O=9Jt5dG2?`$K~AKc>4d@&9MIW&Lf|H?pHSI=2ylUT?)(P7vG%DW-G?s4^rdl L>gTe~DWM4fWAyGQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_desktop_windows.png b/app/src/main/res/drawable-xhdpi/ic_desktop_windows.png new file mode 100644 index 0000000000000000000000000000000000000000..da847aa4c6dddce9d981c6013d799bf597f850f5 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DN>3NZkcwMxuUYdoCqk8e#$aCW*>PvS)H7<;uJgUc1M4m+-u}dfyigW{ltX zw)n5H`NhH^py1HJz{pg`B=Y*G_AG{TWk2t3==oi`!u`=-8S`uBV`P3ia?H?Q=FBwZ bdNI@1Yx!55gVsp{9l_w~>gTe~DWM4f*f2fW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_nintendo.png b/app/src/main/res/drawable-xhdpi/ic_nintendo.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd3113605687be49636a01927fbee93da2ee86f GIT binary patch literal 651 zcmV;60(AX}P)g~-?wJKq@W_Q%P>BW;1j1{0Adx2kq6aZTcmSS(1VV)PCqY6K5V>+@ zyLV7|3hA2c>V^Y4v!l{e{UvqTq_<{%nQyA9ry29|^78WX^76VsTEbl&!P6{Zq?oGp z-%zdO{lVCkY8;Gb&8?+)QY-)k(?-Ez*3e2k!<%RYfc>9^%()}jz7zm#9MobyOc?-P z%-Z+f&K|k|6nv>EF>7z;DpdgXT>!gD#2=CckcNcS)1K?SbOG3~R+#(1SUXt&Hukev zp^O0RQvk1Zcef-9pl*fPKWUIk3&6IkyGhI+kOk0akbYMc$_=1yg+s+YctKbn?0Cfl})mZeE z0l-JC_;NlFVg{|?I)I&|t7}k8*vhf?v#Id=&I33O!?0Qj#?msEc|CuF-xZt(fW3Y# zg85ulh{bag!jjVfaQ#;ackD&2=h;Crk$CSs0PE#869<#_x4nN-O)eV%)X@;TX07m& zEC7@RaNCx+w`2jN5L7UluPT%TK>9uiVUa9=Usm9oWC1i)g?*9$nySJ)SpYv9q`zSW zR{)^!3{c@#a0vh&oG83OatQzmkI*Daydw)BwL7`-F}c!$CNHZ8&i)SXJ> z0Asqo3M0__*ZaVlHjH5e-_8h%YJ3iFX6;M6bqM2WjV1MxnnsGe>`?3+&$V9|N`E(~Z#hM}f2cE=#5B`qM{*KqdDr3p|mRSQS34UeW;_x=~tAy|V4 zXI-x9J)BtmNMf_HH{5EoPR}2&&V0fLSMVS2c8qo!KHRElkWs+`zWl# gvUV*fD5&%F10JS?w#}bFLI3~&07*qoM6N<$f~WbVX8-^I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_xbox.png b/app/src/main/res/drawable-xhdpi/ic_xbox.png new file mode 100644 index 0000000000000000000000000000000000000000..a645d8396f68be6549546f0957707baf4ef6021e GIT binary patch literal 1308 zcmV+%1>^dOP)uVK96hGSR%M;rnUM(qqJBdf*Q3-ZPg+{1;wasY@zv5LKz-dcpEHz z1epGx`=EF6KW8ChtiyNIRG;COpcX7`FIaR?&R~aO(T8BuR$$4Q)nPmjV@5CH1HRatZG7u}t05oo#U9Da za7wC8oBU0PUh+*}iz|)nH;;yp{D|peA_IZSBHucUUiHyHJ%SWy3XM1Bc%B5W6e?(~ zUH1_>;eq$>*LVz~wJ+KERTwu>3ug4?S#f z%-U&E@9i^YgPB++nGc9)lf5`0o%l4k@qbO3>ah+tNp7pJaFw2CdkF1-oY+#kIQzWp zVi;=_gdXyG`LOHqkW&f_A#GCS(xk^c%trwoXLPe<>3Qy|+wr_0^u4n0>2MW6`@xXc z8dW4>lkAk#?)JL&5f(Wk;mA(W_Bt+#zFuw%X!{gI0D93q)NVPh95>!1=RGu0f4Vxs zq8HrXg}sD=EwIJ)L%j~kCfh;&>VrjgIkGvSFS>MzJl6zwK(f&#WG_3*W|-XkO5!H{ z!?BYz$!Xcqj~q0l)DIerjoG{J^`o*ct(ElIVQ^e01y%(7Scm$>r zpX58hSesL#t|e!LbR34nLiE|j>H_Z{j&AjHHU9U!IdF%BDvQ6TwLBN_q>~dhpg!9P zM(%(SjJk$`D7+u;!AO=AH9$JKG?-qfEEk;1&4Y)%rEiSpd~ob>wB<)GS5*;2wx66k zxTy$O1;RgH_L>6~g&)mcU=i?iaSW-r^>+3~Zy86CcK`Dn zN*zKXN}5|XTIg>1lrJ!;Lo?^7u;6NugW5vEQ$oa=IJ&sPZp}~&m+6@6>!29Uc8PV0 zOUDEymM>pUJmswvpH^C4RyOD6?92BLgmdh+Hh%xP?Eap)zM)!EMOMgiFtIo=G%#>5 z2rw`*FexxNFt9LiG%zqQ3NR=zFfrhh%!@OaDy1aW!4#;nPdIf^Q2Lb0H?H%#XI!2z znQ6sV!S@}Lt$0de{3_PvnuaBWG&>zk@pBI~|Ssh3>Gw*RvE zJ=Namz{#GBlLcj`bv$Q$zEw!rQQISnzmu7rHHW3=>&9bQb(fYjtZ>-N#rco_ykW7T zP|R=DGi*JZC!Q86Tvwdn!Z2OZYf@idXUT!e$p1odMb<^04i_&-cxyf75@mcWD4XhZ zF8YJK_RGUt**^>2FO#zTG2e8(ah}tGMQaRHE%o~v)->PrvwW~k*xWkGL@~kplHo^kJ{%ezRuzve_0|ivD4w@^c5(6l>-n-^5F-}`${&6+FuTuZ~l4!@!< zN8NUr>jzo)><-~xWt8LO;M`I;aqpM*H+>vFk+sL)-n$qzp(C<+Wz>ZcnZ00J~+*vxuI$JNvvvU6Jy6)Z06z9^ra$dHhQdsk{_!Dn5N@`C2 z|LQyGb;^#0=byM|-oDmUma|9jb?3&Yy$=-DcORVSL+YSMZa%J z|M19mlH~2%L1Dr(j!aCynAWwJ<=Ea?NA@k)lJ?MdD!)s2tM6gmn%wBe=h*ko*tFHy z&t}dvU7sZ1nA^9)KGZ*s+idVI^={$)GN<4p`pm)t{JYaT-=18)&qRJh-H|)Xvv%3W z>fHXhvtX%VV|G$>s&+Rkr|g~YTaWEnUvX~kxtaxzYo}M7eVKk`(c38%-Zra#iffs$ z$(>$#=+Ubg&u_f`qV9ENSEu?B6Mw%cTjGTlCv9Exd4rdO%dF#Or;=kIZuI{gv+HB8 i#6Cf05;I!LAJ#85a}G)#(y9g)5e%NLelF{r5}E+L3enF1 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_desktop_windows.png b/app/src/main/res/drawable-xxhdpi/ic_desktop_windows.png new file mode 100644 index 0000000000000000000000000000000000000000..ff07f8353dfe9f576c64ca29a602161bf7a99ea2 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw_IkQFhE&{od()clu!4Z=#qgQ7 z7TGS}%>GUks@9&SRL)m2?}%p549`Wsmo0g~!NxU#L-A>l=Bmq!)+Vf#x~e5psJBaW z>6>i7&HLB%$*W(V!lHI@>g3fM7o3wdiMa5HZ&&n%x)mw+&T(@HC^$4QFfy?qF&4~c zT6_Q73(H;2Roq#39WORDrG=mS`ZHUxexFa@oL?&*H%sxZ+<9tS(R{PjR*x@K#mY1= m{FQ%kxtSMeh|`Ikl?+9~)m3$m&c6eCgu&C*&t;ucLK6T;Yhw`r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_nintendo.png b/app/src/main/res/drawable-xxhdpi/ic_nintendo.png new file mode 100644 index 0000000000000000000000000000000000000000..b86c183778893455ada69aa8dc309fde9a7db870 GIT binary patch literal 1042 zcmV+t1nv8YP)EEqYHHPHuBHe7Tjbne=^63ei?HsdX;z{g+N}X*oa?q_&4z6&#Ly$*9vw-}m?` z(GmLIkjr~7Ywz`Z04P|1k+P9H=~W5<1^^n7ukKf}aybB)0POf48hLiCU$g^&2OvhE zQUm}#fP(!c-J8hDJ^*k5P*sE2@^FHUKb>;c zitLkhla{Rk&;TI5zJ0ZZTE29CnSv=vJ*8sIrL`T#CzyMGyMbyCnfC*r#6dCma089WhK`UqF z(MYQ=0AK*1lzY-9H1ZYzm;flW$zq>^w*X)QsIC^fCk^T4A0l)-6p-;WC zPr*9?FaglozAZ(^X2S$+K?210(3{b89MSnUCIFfbm7@6n0)PjA68h>8XIHe~0j70D zqX1w4puZ7|GMUx%Hv#})0GOI38+n9IKmdRVfV!gUes3NC3;^+o3X@*zde0XCGkZU1 zEBbOU{`^q@v>t#m?d(q;01NQp~{BKw>NKoA5$5ClOG1VIo4LFQb311JVfoZjLw>;M1& M07*qoM6N<$f*#4iL;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_playstation.png b/app/src/main/res/drawable-xxhdpi/ic_playstation.png new file mode 100644 index 0000000000000000000000000000000000000000..8f538d85b97bd8dd1cbe8b22690231b2ddb9eb41 GIT binary patch literal 1125 zcmV-r1e*JaP)Ho~MGF*>L>ojwM4OhDEuu_OUrM70Yym5y51Fl0Mw?LCB9#9`2au{b>7~4HExN4m18{4Q z^pw;{T22}T3&Rb-t#71O(h5=m>T#A?FEoj8)+gewif{F z9ceaf4kmyE=`d*tX`Rf5bdKYN-Yi({KY%XRu@guGn#aB-6~k_S0X#@^e2<6YPr`1y z0Ssb1up0oY8J61(;0vh`w%ZGUH6OOy4PYy5w;MnMY&Q#_BcK3|z;?R=Mz)aG1<=kkwP3n}Q z-9^$aHG((yrkdWbGH<+1_zWN$-0G*0=8+bYmXa2c=1MSyBhhp}$`-&h(k9X|QoC}t zxaaEP_#W{`(qmE!X%A@`X$(xy9l$tJxpJN(=nnWiQR&XMQ&&wsn9eP32kC~-FFzm#ZdT4lDX&`-<0(og?{y$Hv`f|$kK}KiW6vo|+uwPs zH`mX5eV7oJ)*B&}_*jUUgfS>JBtCa(n(xP^Hff$O61MrJ(ppSS;75zY#$48St^R_fC-PD8^vf#>P`g+o3 zjj$80YsoYXt+FxuIqk7!ewF%5v-GVo75tpMJ;Sx~VrdQOf@`*BI*7+5?1%(v1^!aU z4Jwwysdm@&c(u&WzX$aBZ%7A8bMk4`%Xg6W%A&<~7(BIHB?Ep>K%dE7?NQQ#f1&PE zBvr+TbWvRP{bW#Dj>)n6WPtSAP53pPx2T_z!rOoGa5oRY3#E9~AYB)?((|OV%6T+s zzr0?ihCWDbvJf*F#CdFJm0u9Y)*Bma4yO4I&t9Hrb}b2w*ZZZ|S1nUv z;9;=mTZkP}K=TqnvJ6q1rq~AzD3Q{)yY8PbToD7G1AL|Q<-JlO;c4-7SQ9?@e?R~L r000000000000000000000QkdiMJ}o{5)4rA00000NkvXXu0mjf>>K~2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_xbox.png b/app/src/main/res/drawable-xxhdpi/ic_xbox.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4e935d1ef542328d3f2e30f31d6ff73848fc79 GIT binary patch literal 1960 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

?<>L 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 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index ce02e2e..4cd6b90 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,13 +6,19 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> - - + android:layout_height="match_parent" + android:orientation="vertical" + > - + + + + - diff --git a/app/src/main/res/menu/search_menu.xml b/app/src/main/res/menu/search_menu.xml new file mode 100644 index 0000000..ab8e92e --- /dev/null +++ b/app/src/main/res/menu/search_menu.xml @@ -0,0 +1,12 @@ + +

+ + \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 83ad343..694646e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -13,4 +13,5 @@ No se obtuvieron todos los artículos de un sitio... Revisa tu conexión a internet Aún se esta recargando. + Search articles... \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3251a4a..b6856f5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,4 +15,5 @@ Can\'t get all articles from sites... Check your internet connection App is still refreshing + Search articles... diff --git a/app/src/main/res/xml/searchable.xml b/app/src/main/res/xml/searchable.xml new file mode 100644 index 0000000..27879cc --- /dev/null +++ b/app/src/main/res/xml/searchable.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file