Java tutorial
/* * Copyright (C) 2013 Andreas Stuetz <andreas.stuetz@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.wordpress.priyankvex.onetouch; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; import com.astuetz.PagerSlidingTabStrip; import java.io.File; import java.util.ArrayList; public class MainActivity extends FragmentActivity { private final Handler handler = new Handler(); private PagerSlidingTabStrip tabs; private ViewPager pager; private MyPagerAdapter adapter; private int currentColor = 0xFF3F9FE0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getFromSdcard(); for (String path : f) { MediaScannerConnection.scanFile(this, new String[] { path }, new String[] { "image/png" }, null); } tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); pager = (ViewPager) findViewById(R.id.pager); adapter = new MyPagerAdapter(getSupportFragmentManager()); pager.setAdapter(adapter); final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics()); pager.setPageMargin(pageMargin); tabs.setViewPager(pager); changeColor(currentColor); SharedPreferences prefs = getSharedPreferences("prefs", MODE_PRIVATE); if (prefs.getString("reg_id", null) == null) { Intent i = new Intent(MainActivity.this, RegistrationActivity.class); startActivity(i); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); finish(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_contact: QuickContactFragment dialog = new QuickContactFragment(); dialog.show(getSupportFragmentManager(), "QuickContactFragment"); return true; } return super.onOptionsItemSelected(item); } private void changeColor(int newColor) { tabs.setIndicatorColor(newColor); // change ActionBar color just if an ActionBar is available if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { Log.d("onetouch", "color should changed"); } currentColor = newColor; } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("currentColor", currentColor); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); currentColor = savedInstanceState.getInt("currentColor"); changeColor(currentColor); } private Drawable.Callback drawableCallback = new Drawable.Callback() { @Override public void invalidateDrawable(Drawable who) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) getActionBar().setBackgroundDrawable(who); } @Override public void scheduleDrawable(Drawable who, Runnable what, long when) { handler.postAtTime(what, when); } @Override public void unscheduleDrawable(Drawable who, Runnable what) { handler.removeCallbacks(what); } }; public class MyPagerAdapter extends FragmentPagerAdapter { private final String[] TITLES = { "Live Feed", "Categories", "Favorites", "Options" }; public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public CharSequence getPageTitle(int position) { return TITLES[position]; } @Override public int getCount() { return TITLES.length; } @Override public Fragment getItem(int position) { switch (position) { case 0: return LivefeedFragment.newInstance(position); case 1: return CategoriesFragment.newInstance(position); case 2: return FavoritesFragment.newInstance(position); case 3: return OptionsFragment.newInstance(position); } return CategoriesFragment.newInstance(position); } } ArrayList<String> f = null;// list of file paths File[] listFile; // Helper function to get all the file paths public void getFromSdcard() { f = new ArrayList<>(); File file = new File(android.os.Environment.getExternalStorageDirectory(), "OneTouch"); if (file.isDirectory()) { listFile = file.listFiles(); for (int i = 0; i < listFile.length; i++) { f.add(listFile[i].getAbsolutePath()); } } } }