package com.ved.musicmapapp; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.channels.FileChannel; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; import org.json.JSONObject; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Typeface; import android.os.AsyncTask; import android.os.Bundle; import android.os.CountDownTimer; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.provider.MediaStore; import android.provider.Settings.Secure; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.text.Html; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.view.ViewGroup.LayoutParams; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import android.view.animation.DecelerateInterpolator; import android.view.animation.RotateAnimation; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import com.facebook.FacebookRequestError; import com.facebook.HttpMethod; import com.facebook.Request; import com.facebook.RequestAsyncTask; import com.facebook.Response; import com.facebook.Session; import com.google.android.gcm.GCMRegistrar; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import com.ved.musicmapapp.Objects.Artist; import com.ved.musicmapapp.Objects.User; import com.ved.musicmapapp.fragments.AddPlaylistFragment; import com.ved.musicmapapp.fragments.AroundUserFragment; import com.ved.musicmapapp.fragments.ArtistFragment; import com.ved.musicmapapp.fragments.CategoryDetailFragment; import com.ved.musicmapapp.fragments.CategoryFragment; import com.ved.musicmapapp.fragments.FollowYouFragment; import com.ved.musicmapapp.fragments.GlobalUserFragment; import com.ved.musicmapapp.fragments.InviteFriendFragment; import com.ved.musicmapapp.fragments.LikeFragment; import com.ved.musicmapapp.fragments.LoadingFragment; import com.ved.musicmapapp.fragments.MainFragment; import com.ved.musicmapapp.fragments.PlaylistStatsFragment; import com.ved.musicmapapp.fragments.PlaylistTracksFragment; import com.ved.musicmapapp.fragments.SettingsFragment; import com.ved.musicmapapp.fragments.SimilarUserFragment; import com.ved.musicmapapp.fragments.UserArtistsFragment; import com.ved.musicmapapp.fragments.UserDetailsFragment; import com.ved.musicmapapp.fragments.YouFollowFragment; import com.ved.musicmapapp.providers.GetUserArtistListTask; import com.ved.musicmapapp.providers.GetUserDetailTask; import com.ved.musicmapapp.providers.GetUsersDataFromDBTask; import com.ved.musicmapapp.providers.GetUsersDataTask; import com.ved.musicmapapp.providers.LogoutTask; import com.ved.musicmapapp.providers.PostSongToServerTask; import com.ved.musicmapapp.providers.RegisterGCMTask; //import com.ved.musicmapapp.providers.SyncSongTask; import com.ved.musicmapapp.receiver.LikeBroadcastReceiver; import com.ved.musicmapapp.receiver.NotificationBroadcastReceiver; import com.ved.musicmapapp.receiver.ProcessSyncingReceiver; import com.ved.musicmapapp.services.SongPostingService; import com.ved.musicmapapp.services.UpdateLocationService; import com.ved.musicmapapp.utils.LogFile; import com.ved.musicmapapp.utils.SingleMediaScanner; import com.ved.musicmapapp.utils.Statics; import com.ved.musicmapapp.views.MySlidingPaneLayout; public class MainActivity extends BaseActivity { public static final String BROAST_CAST_VIEW_USER_DETAIL = "com.ved.musicmapapp.viewUserDetail"; // public static boolean isMainSyncing = false; public static final int SPLASH_RQ_CODE = 1001; public static final int FRAG_YOU_FOLLOW = 0; public static final int FRAG_ARROUND_ME = 1; public static final int FRAG_SIMILAR_ME = 2; public static final int FRAG_PLAYLIST_STATS = 3; public static final int FRAG_INVITE_FB = 4; public static final int FRAG_SETTING = 5; public static final int FRAG_ADD_PLAYLIST = 6; public static final int FRAG_MY_SHARE = 7; public static final int FRAG_GLOBAL_USER = 8; public static final int FRAG_SHARES = 9; private int CURENT_FRAG = 0; private MySlidingPaneLayout slide; private boolean ready = false, hasReload = false; private boolean reloadFollower = false, reloadLike = false; private CountDownTimer cDT; private EditText edt_search; private ImageView imvAddPlaylist; private ImageView tv_title; private TextView tv_title_bar; private ImageView profile_pic_menu; private TextView tv_name_nav, tvNoSongShare , tvNoFollowYou ; private LinearLayout ll_people, ll_similar, ll_arround, ll_invite, ll_settings, ll_splash_hidden; private LinearLayout ll_current; private ProgressDialog pd; private SharedPreferences prefs; private Editor edt; private String regId; // private SyncSongTask syncTask; private PostSongToServerTask postSongsTask; private GetUsersDataTask dataTask; private ImageLoader imageLoader; private DisplayImageOptions options; private View viewLoading; public String follow_fbid; // public boolean[] isLoaded; public static boolean isSync; private ImageView mActionShare; private ImageView drawerIcon; // private View mSplashLayout; private OnShareListener mOnShareListener; private boolean isRefreshing = false; private SharedPreferences mPrefs; // private ProgressBar mProgSyncing, mProgSyncingBar; private ImageView mImvRefresh; private LikeBroadcastReceiver likeReceiver; private NotificationBroadcastReceiver mNotificationBroadcastReceiver; private ProcessSyncingReceiver mProcessSyncingReciever; private Handler mHandler; Thread t; public static boolean FROM_GCM = false; public static String FB_ID_GCM = ""; SharedPreferences prefsApp; boolean isCheck = false; // private View myViewLoadingFirst; private Spinner sortSpinner; boolean isServiceSyncing = false; ImageView loadingDisc; RotateAnimation rotate; public boolean getFirstRun() { return mPrefs.getBoolean("firstRun", true); } public void setRunned() { SharedPreferences.Editor edit = mPrefs.edit(); edit.putBoolean("firstRun", false); edit.commit(); } public void firstRunPreferences() { Context mContext = this.getApplicationContext(); mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); prefsApp = getSharedPreferences("MUSIC_MAP", MODE_PRIVATE); if (prefsApp.getString("FB_ID", "").length() == 0) { if (Statics.hashUsers != null) { Statics.hashUsers.clear(); } startActivity(new Intent(this, LoginAcitivity.class)); finish(); } else { Statics.isFollowingLoaded = false; Statics.isFollowersLoaded = false; Statics.isWhoToFollowLoaded = false; restoreState(savedInstanceState); setContentView(R.layout.activity_main); init(); firstRunPreferences(); if (getFirstRun()) { setRunned(); } if (prefs.getBoolean("IS_FIRST_TIME", true)) { getSongExit(); Log.e("check","Calling from In get All user's data in bg from oncreate"); getAllUsersDataInBg(); } // showDialog(); Intent intent = new Intent(this, UpdateLocationService.class); startService(intent); mHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg != null) { switch (msg.what) { case 2: String fbId = msg.getData() .getString("FOLLOW_FBID"); if (fbId != null && fbId.length() > 0) { if (Statics.hashUsers != null) { User user = Statics.hashUsers.get(fbId); if (user != null) { openUserDetail(user); } else { if (Statics.curUser != null) { new GetUserDetailTask( MainActivity.this, Statics.curUser.getFbid(), fbId) { protected void onPostExecute( User result) { super.onPostExecute(result); openUserDetail(result); } }.execute(); } } } } default: int noFollow = msg.getData().getInt("no_follow"); if (Statics.curUser != null) { Statics.curUser.setTotalFollowYou(noFollow); Fragment currentFragment = getSupportFragmentManager() .findFragmentById(R.id.frame_content); if (currentFragment instanceof MainFragment) { MainFragment mf = (MainFragment) currentFragment; // MainFragment.TabInfo ti = mf.getMapTabInfo().get("FOLLOWERS"); // FollowYouFragment fragment = (FollowYouFragment) ti.fragment; FollowYouFragment fragment = (FollowYouFragment) mf.getTab(1); fragment.reloadData(); } else { reloadFollower = true; } } } } super.handleMessage(msg); } }; isSync = false; LogFile.TEMP_FOLDER = Environment.getExternalStorageDirectory() .getAbsolutePath(); GCMRegistrar.checkDevice(MainActivity.this); GCMRegistrar.checkManifest(MainActivity.this); follow_fbid = getIntent().getStringExtra("FOLLOW_FBID"); // Get data from local if (!prefs.getBoolean("IS_FIRST_TIME", true)) { GetUsersDataFromDBTask dbDataFetchingTask = new GetUsersDataFromDBTask(this, prefs.getString("FB_ID", "")) { @Override public void onSuccess(User followUser) { slide.setVisibility(View.INVISIBLE); dismissDialog(); String msg = getString(R.string.main_shared_songs_msg_6,prefs.getString("sPhones", "0")); String msg1 = getString(R.string.main_shared_songs_msg_7,prefs.getString("sExists", "0")); tvNoSongShare.setText(Html.fromHtml(msg)); tvNoFollowYou.setText(Html.fromHtml(msg1)); if (Statics.curUser != null) { MainFragment m2 = new MainFragment(); m2.setCurTab(0); setNewPage(m2); // startSyncing(false); } if(follow_fbid != null){ if (Statics.curUser != null) { new GetUserDetailTask(MainActivity.this, Statics.curUser.getFbid(), follow_fbid) { protected void onPostExecute(User result) { super.onPostExecute(result); if(result != null) openUserDetail(result); else Toast.makeText(MainActivity.this, "Unable to get User details from server", Toast.LENGTH_SHORT).show(); } }.execute(); } } gcmRegistration(); // Fetch All User Details in BG getAllUsersDataInBg(); }; }; dbDataFetchingTask.execute(); } mNotificationBroadcastReceiver = new NotificationBroadcastReceiver(); mNotificationBroadcastReceiver .setMessenger(new Messenger(mHandler)); mProcessSyncingReciever = new ProcessSyncingReceiver() { @Override public void onStartProcess() { super.onStartProcess(); Log.e("check","In onstart process "); startSyncNdCleanAnimation(); } @Override public void onUpdateProcess(String message) { super.onUpdateProcess(message); /// Log.e("check","In onupdate process "); tvNoSongShare.setText(message); } @Override public void onStopProcess(boolean hasData) { super.onStopProcess(hasData); setNoSongText(true); // Log.e("check","In get All user's data in bg from onstop process"); // getAllUsersDataInBg(); stopSynchCleanAnimation(); } @Override public void onReloadProcess() { super.onReloadProcess(); // getAllUsersDataInBg(); } }; registerReceiver(mNotificationBroadcastReceiver, new IntentFilter(BROAST_CAST_VIEW_USER_DETAIL)); IntentFilter iProcessFilter = new IntentFilter(); iProcessFilter.addAction(ProcessSyncingReceiver.BROAST_CAST_START_SYNCING); iProcessFilter.addAction(ProcessSyncingReceiver.BROAST_CAST_UPDATE_SYNCING); iProcessFilter.addAction(ProcessSyncingReceiver.BROAST_CAST_STOP_SYNCING); iProcessFilter.addAction(ProcessSyncingReceiver.BROAST_CAST_RELOAD); registerReceiver(mProcessSyncingReciever, iProcessFilter); } } private class StartSyncServiceTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... params) { Intent intent = new Intent(MainActivity.this, SongPostingService.class); PendingIntent pintent = PendingIntent.getService(MainActivity.this, 0, intent, 0); AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); //alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 60000 , pintent); alarm.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 4*3600000 , pintent); return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); } } private void getSongExit() { new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { InputStream instream = null; String fbjson = prefs.getString("FB_JSON", ""); String fbid = prefs.getString("FB_ID", ""); String device_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID); try { HttpParams httpParameters = new BasicHttpParams(); int timeoutConnection = 20000; HttpConnectionParams.setConnectionTimeout(httpParameters,timeoutConnection); int timeoutSocket = 20000; HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); HttpClient httpclient = new DefaultHttpClient(httpParameters); HttpPost httppost = new HttpPost(Statics.WS_PATH + "getSongExist.php"); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("fbid", fbid)); nvps.add(new BasicNameValuePair("fbusername", prefs.getString("FB_USERNAME", ""))); nvps.add(new BasicNameValuePair("device_id", device_id)); nvps.add(new BasicNameValuePair("fbjson", fbjson)); httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse response = httpclient.execute(httppost); // edt.putString("DATA_UPLOAD", ""); // edt.commit(); HttpEntity entity = response.getEntity(); if (entity != null) { // get the response content as a string instream = entity.getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(instream, "UTF-8")); String line; StringBuilder sb1 = new StringBuilder(""); while ((line = reader.readLine()) != null) { sb1.append(line + "\n"); } JSONObject jsonObject = new JSONObject(sb1.toString().trim()); int user_id = Integer.parseInt(jsonObject.getString("userid").toString().trim()); edt.putString("FB_USERNAME", jsonObject.getString("fbusername")); edt.putInt("USER_ID", user_id); edt.commit(); } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (prefs.getBoolean("IS_FIRST_TIME", true)) { // stopLoadingAnimation(); ll_splash_hidden.setVisibility(View.GONE); if (prefs.getInt("USER_ID", 0) > 0) { Log.i("check","Calling GetFriendsFromFBActivity from post execute,,"); GetFriendsFromFacebookDialog dialog = new GetFriendsFromFacebookDialog(MainActivity.this); dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); dialog.show(); // startActivityForResult(new Intent(MainActivity.this, // GetFriendsFromFBActivity.class), // SPLASH_RQ_CODE); } } } }.execute(null, null, null); } @SuppressWarnings("unchecked") public void restoreState(Bundle savedIntances) { if (savedIntances != null) { Statics.curUser = (User) savedIntances .getSerializable("current_user"); Statics.hashUsers = (HashMap<String, User>) savedIntances .getSerializable("hash_user"); Statics.likeDatas = (ArrayList<Artist>) savedIntances .getSerializable("like_date"); } } private void init() { imageLoader = ImageLoader.getInstance(); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.img_no_image) .showImageForEmptyUri(R.drawable.img_no_image) .showImageOnFail(R.drawable.img_no_image).cacheInMemory(true) .cacheOnDisc(true).bitmapConfig(Bitmap.Config.RGB_565).build(); // loadingDisc = (ImageView) findViewById(R.id.loadingDisc); // loadingDisc1 = (ImageView) findViewById(R.id.loadingDisc1); // loadingDisc2 = (ImageView) findViewById(R.id.loadingDisc2); viewLoading = findViewById(R.id.loadingMain); // myViewLoadingFirst = findViewById(R.id.loadingMain1); // mSplashLayout = findViewById(R.id.layout_splash); // ll_splash_hidden.setVisibility(View.VISIBLE); // mSplashLayout.setVisibility(View.VISIBLE); mImvRefresh = (ImageView) findViewById(R.id.imv_refresh); prefs = getSharedPreferences("MUSIC_MAP", MODE_PRIVATE); edt = prefs.edit(); pd = new ProgressDialog(this); pd.setMessage("Getting data..."); pd.setCancelable(false); sortSpinner = (Spinner) findViewById(R.id.spinner_sort); slide = (MySlidingPaneLayout) findViewById(R.id.sliding_std_en); // _index=1; cDT = new CountDownTimer(3000, 3000) { @Override public void onTick(long arg0) { } @Override public void onFinish() { ready = false; } }; edt_search = (EditText) findViewById(R.id.edt_search); imvAddPlaylist = (ImageView) findViewById(R.id.imvAddPlaylist); tv_title = (ImageView) findViewById(R.id.tv_title_bar); tv_title_bar = (TextView)findViewById(R.id.title_bar); tv_title_bar.setVisibility(View.GONE); Typeface tf3 = Typeface.createFromAsset(getAssets(), "Raleway-Bold.otf"); tv_name_nav = (TextView) findViewById(R.id.tv_name_nav); tvNoSongShare = (TextView) findViewById(R.id.tvNoSongShare); tvNoFollowYou = (TextView) findViewById(R.id.tvNoFollowYou); profile_pic_menu = (ImageView) findViewById(R.id.profile_pic_menu); tv_name_nav.setText(prefs.getString("FB_NAME", "")); imageLoader.displayImage( "https://graph.facebook.com/" + prefs.getString("FB_ID", "") + "/picture?type=large", profile_pic_menu, options, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { profile_pic_menu.setImageBitmap(loadedImage); } @Override public void onLoadingCancelled(String imageUri, View view) { } }); ll_people = (LinearLayout) findViewById(R.id.ll_people); ll_similar = (LinearLayout) findViewById(R.id.ll_similar); ll_arround = (LinearLayout) findViewById(R.id.ll_arroundme); ll_invite = (LinearLayout) findViewById(R.id.ll_invite); ll_settings = (LinearLayout) findViewById(R.id.ll_settings); ll_splash_hidden = (LinearLayout) findViewById(R.id.layout_splash_hidden); ll_splash_hidden.setVisibility(View.VISIBLE); loadingDisc = (ImageView)findViewById(R.id.loadingDisc); startLoadingAnimation(); ll_people.setBackgroundColor(getResources().getColor( R.color.settings_bg)); ll_current = ll_people; drawerIcon = (ImageView) findViewById(R.id.imv_three_line); drawerIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onNavigation(v); } }); mActionShare = (ImageView) findViewById(R.id.imvShare); mActionShare.setVisibility(View.GONE); mActionShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mOnShareListener != null) { mOnShareListener.onShare(); } } }); } public void startLoadingAnimation(){ rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotate.setDuration(1500); rotate.setRepeatCount(-1); rotate.setFillAfter(true); loadingDisc.startAnimation(rotate); } public void stopLoadingAnimation(){ rotate.cancel(); if(loadingDisc.getAnimation() != null) loadingDisc.getAnimation().cancel(); loadingDisc.clearAnimation(); } public void onNavigation(View v) { if (slide.isOpen()) { slide.closePane(); } else { slide.openPane(); } } public void onLogout(View v) { if (null == Statics.curUser) return; new LogoutTask(MainActivity.this).execute(Statics.curUser.getFbid()); slide.openPane(); Session session = Session.getActiveSession(); if (!session.isClosed()) { session.closeAndClearTokenInformation(); } Intent intent = new Intent(this, UpdateLocationService.class); stopService(intent); finish(); Intent i = new Intent(this, LoginAcitivity.class); i.putExtra("LOGOUT", true); startActivity(i); } public void onShares(View v) { CURENT_FRAG = FRAG_SETTING; setNewPage(new LikeFragment()); } public void onYouFollow(View v) { CURENT_FRAG = FRAG_YOU_FOLLOW; setNewPage(new MainFragment()); } public void onMyShare(View v) { if (findViewById(R.id.prog_syncing_nav).getVisibility() == View.VISIBLE) { return; } if (Statics.curUser.getArtists() == null) { new GetUserArtistListTask(MainActivity.this, Statics.curUser.getFbid(), Statics.curUser.getFbid()) { protected void onPostExecute(User result) { super.onPostExecute(result); if (result != null) { Statics.curUser = result; CURENT_FRAG = FRAG_MY_SHARE; UserDetailsFragment fragment = new UserDetailsFragment(); // UserDetailFragment fragment = new UserDetailFragment(); fragment.setUser(Statics.curUser); Log.i("CUR", "" + Statics.curUser.getFullName()); setNewPage(fragment); } }; }.execute(); } else { CURENT_FRAG = FRAG_MY_SHARE; UserDetailsFragment fragment = new UserDetailsFragment(); fragment.setUser(Statics.curUser); Log.i("CUR", "" + Statics.curUser.getFullName()); setNewPage(fragment); } } public void onAddPlaylist(View v) { CURENT_FRAG = FRAG_ADD_PLAYLIST; setNewPage(AddPlaylistFragment.newInstance(2)); } public void onArroundMe(View v) { CURENT_FRAG = FRAG_ARROUND_ME; setNewPage(new AroundUserFragment()); } public void onSimilarToMe(View v) { CURENT_FRAG = FRAG_SIMILAR_ME; setNewPage(new SimilarUserFragment()); } public void onInviteFriends(View v) { CURENT_FRAG = FRAG_INVITE_FB; setNewPage(new InviteFriendFragment()); } public void onSettings(View v) { CURENT_FRAG = FRAG_SETTING; setNewPage(new SettingsFragment()); } public void onSearch(View v) { // imv_search.setVisibility(View.GONE); // imv_close_search.setVisibility(View.VISIBLE); edt_search.setVisibility(View.VISIBLE); edt_search.startAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_from_top)); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(edt_search, 0); } public void onCloseSearch(View v) { this.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); // imv_search.setVisibility(View.VISIBLE); // imv_close_search.setVisibility(View.GONE); edt_search.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_to_top)); edt_search.setVisibility(View.GONE); } public void setNewPage(Fragment fragment) { //slide.closePane(); if (slide.isOpen()) { slide.closePane(); } String tagName = "currentFragment"; // mActionShare.setVisibility(View.VISIBLE); while (getSupportFragmentManager().getBackStackEntryCount() > 0) { getSupportFragmentManager().popBackStackImmediate(); } imvAddPlaylist.setVisibility(View.VISIBLE); tv_title.setVisibility(View.VISIBLE); tv_title_bar.setVisibility(View.GONE); if (fragment instanceof MainFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } ll_people.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_people; } else if (fragment instanceof PlaylistStatsFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } } else if (fragment instanceof GlobalUserFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } } else if (fragment instanceof AroundUserFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } ll_arround.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_arround; } else if (fragment instanceof SimilarUserFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } ll_similar.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_similar; } else if (fragment instanceof InviteFriendFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } ll_invite.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_invite; } else if (fragment instanceof SettingsFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } ll_settings.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_settings; tv_title.setVisibility(View.GONE); tv_title_bar.setVisibility(View.VISIBLE); tv_title_bar.setText("SETTINGS"); mActionShare.setVisibility(View.GONE); } else if (fragment instanceof AddPlaylistFragment) { if (null != ll_current) { //ll_current.setBackgroundResource(R.drawable.bg_nav); ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } } else if (fragment instanceof UserArtistsFragment) { if (null != ll_current) { ll_current.setBackgroundColor(getResources().getColor(R.color.white)); } imvAddPlaylist.setVisibility(View.GONE); tagName = "UserDetailFragment"; } try { getSupportFragmentManager().beginTransaction() .replace(R.id.frame_content, fragment, tagName) .commitAllowingStateLoss(); edt_search.setVisibility(View.GONE); } catch (Exception e) { e.printStackTrace(); } } /** * LEADER BOARD */ public void onDetailLeader(View v) { setNewPage(new CategoryFragment()); } @Override public void onBackPressed() { if (slide.isOpen()) { slide.closePane(); return; } Fragment currentFragment = getSupportFragmentManager() .findFragmentById(R.id.frame_content); if (currentFragment instanceof UserDetailsFragment) { boolean result = ((UserDetailsFragment)currentFragment).onBack(); if(result) return; } else if (currentFragment instanceof MainFragment) { boolean result = ((MainFragment)currentFragment).onBack(); if(result) return; } else if (currentFragment instanceof ArtistFragment) { ArtistFragment frag = (ArtistFragment) currentFragment; if(frag.isFullVideoScreen()){ frag.handleFullScreen(false); return; } else{ if(frag.stopYoutubeVideo()) return; } } else if (currentFragment instanceof PlaylistTracksFragment) { PlaylistTracksFragment frag = (PlaylistTracksFragment) currentFragment; if(frag.isFullVideoScreen()){ frag.handleFullScreen(false); return; } else{ if(frag.stopYoutubeVideo()) return; } } if (getSupportFragmentManager().getBackStackEntryCount() > 0) { try{ super.onBackPressed(); }catch(Exception e){ e.printStackTrace(); finish(); } currentFragment = getSupportFragmentManager().findFragmentById(R.id.frame_content); if (currentFragment instanceof UserArtistsFragment && hasReload) { UserArtistsFragment udf = (UserArtistsFragment) currentFragment; udf.updateView(); } else if (currentFragment instanceof MainFragment) { MainFragment mf = (MainFragment) currentFragment; if (reloadFollower) { Log.i("TEST", "22222222"); reloadFollower = false; // MainFragment.TabInfo ti = mf.getMapTabInfo().get("Followers"); // FollowYouFragment fYF = (FollowYouFragment) ti.fragment; YouFollowFragment fYF = (YouFollowFragment) mf.getTab(0); fYF.getData(MainActivity.this); } if (reloadLike) { Log.i("TEST", "444444444"); reloadLike = false; MainFragment.TabInfo ti = mf.getMapTabInfo().get("Likes"); LikeFragment lF = (LikeFragment) ti.fragment; lF.getData(MainActivity.this); } // if (hasReload) { // hasReload = false; // // MainFragment.TabInfo ti = mf.getMapTabInfo().get( // "Followings"); // YouFollowFragment yFF = (YouFollowFragment) ti.fragment; // yFF.getData(); // } setNavTitle(getString(R.string.app_name)); } return; } if (currentFragment instanceof UserArtistsFragment) { if (CURENT_FRAG == FRAG_SIMILAR_ME) { onSimilarToMe(null); } else if (CURENT_FRAG == FRAG_ARROUND_ME) { onArroundMe(null); } /* * else if (CURENT_FRAG == FRAG_GLOBAL_USER) { onGlobalUser(null); } */else { onYouFollow(null); } } else if (currentFragment instanceof MainFragment) { if (ready) { finish(); } else { ready = true; Statics.showToast(getBaseContext(), "Press back again to exit"); cDT.start(); } } else if (currentFragment instanceof CategoryDetailFragment) { setNewPage(new CategoryFragment()); } else if (currentFragment instanceof CategoryFragment) { setNewPage(new PlaylistStatsFragment()); } else { setNewPage(new MainFragment()); if (null != ll_current) { // ll_current.setBackgroundResource(R.drawable.bg_nav); ll_current.setBackgroundResource(R.color.white); } ll_people.setBackgroundColor(getResources().getColor(R.color.settings_bg)); ll_current = ll_people; } } public void onRefresh(View v) { slide.closePane(); // if (null != syncTask) { // syncTask.cancel(true); // } if (null != postSongsTask) { postSongsTask.cancel(true); } isRefreshing = true; startSyncing(true); // Intent send = new Intent("com.ved.musicmapapp.service.syncsong"); // sendBroadcast(send); // Log.e("check","In get All user's data in bg from on refresh"); // getAllUsersDataInBg(); } public void startSyncing(boolean doPosting) { Log.e("check","IN start syncing,,,"); if (isServiceSyncing) { return; } postSongsTask = new PostSongToServerTask(this,doPosting) { @Override protected void onPreExecute() { isServiceSyncing = true; super.onPreExecute(); // startSyncNdCleanAnimation(); Log.i("SyncSongTask", "in Update Location Service"); } @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); isServiceSyncing = false; setNoSongText(true); // stopSynchCleanAnimation(); } @Override protected void onCancelled(Boolean result) { super.onCancelled(result); Log.i("SyncSongTask", "cancelled"); // setNoSongText(true); isServiceSyncing = false; // stopSynchCleanAnimation(); } }; postSongsTask.execute(); } public void onShare() { String sharedUrl = Statics.WEB_APP_URL + Statics.curUser.getUserName(); String shareBody; if (Statics.curUser != null && Statics.curUser.getArtists() != null) { if (Statics.curUser.getArtists().size() == 1) { shareBody = getString(R.string.share_user_current_user_, Statics.curUser.getArtists().get(0).getName()); } else { shareBody = getString(R.string.share_user_current_user, Statics.curUser.getArtists().get(0).getName(), Statics.curUser.getArtists().size() - 1); } shareBody += "\n" + sharedUrl; Intent sharingIntent = new Intent( android.content.Intent.ACTION_SEND); sharingIntent.setType("text/plain"); sharingIntent .putExtra(android.content.Intent.EXTRA_TEXT, shareBody); startActivity(Intent.createChooser(sharingIntent, "Share")); } } private void getAllUsersDataInBg() { Log.e("check","In get All user's data in bg"); UpdateLocationService.isGetData = false; isRefreshing = true; dataTask = new GetUsersDataTask(this, follow_fbid) { @Override public void onSuccess(User followUser) { Log.e("check","In get All user's data in bg on success//////"); isRefreshing = false; if (Statics.curUser != null) { viewLoading.setVisibility(View.GONE); } fillDataToFragments(followUser); dismissDialog(); if (prefs.getBoolean("IS_FIRST_TIME", true)) { StartSyncServiceTask task = new StartSyncServiceTask(); task.execute(); } }; }; dataTask.execute(); } private void fillDataToFragments(User followUser) { // Fill data to Fragment Fragment currentFragment = getSupportFragmentManager() .findFragmentById(R.id.frame_content); int lastTab = 0; if (null != Statics.curUser && Statics.curUser.getNoSong() == 0) { CURENT_FRAG = FRAG_SIMILAR_ME; setNewPage(new SimilarUserFragment()); } //else if (null != followUser && null != follow_fbid) // { // openUserDetail(followUser); // } else if( currentFragment instanceof LoadingFragment) { hasReload = false; MainFragment m2 = new MainFragment(); m2.setCurTab(lastTab); setNewPage(m2); } else if (currentFragment instanceof MainFragment) { MainFragment m1 = (MainFragment) currentFragment; lastTab = m1.getCurTab(); setNewPage(m1); } } private void gcmRegistration() { regId = GCMRegistrar.getRegistrationId(MainActivity.this); if (regId.equals("")) { GCMRegistrar.register(MainActivity.this, Statics.GCM_SENDER_ID); } else { if (GCMRegistrar .isRegisteredOnServer(MainActivity.this)) { // Skips registration. } else { GCMRegistrar.setRegisteredOnServer( MainActivity.this, true); } if(Statics.curUser != null) { new RegisterGCMTask(MainActivity.this, Statics.curUser.getFbid(), regId).execute(); } } } public EditText getEdtSearch() { return edt_search; } public ImageView getImvAddPlaylist() { return imvAddPlaylist; } public void postOnWall() { Session session = Session.getActiveSession(); if (session != null) { Bundle postParams = new Bundle(); postParams.putString("name", "MusicMap Application"); postParams.putString("caption", "I have uploaded the data to my app"); postParams.putString( "link", Statics.DATAPATH + "users/" + prefs.getString("FB_USERNAME", "")); postParams.putString("place", "203682879660695"); Request.Callback callback = new Request.Callback() { public void onCompleted(Response response) { FacebookRequestError error = response.getError(); if (error != null) { Toast.makeText(MainActivity.this, error.getErrorMessage(), Toast.LENGTH_SHORT) .show(); } else { Toast.makeText(MainActivity.this, "Posted to facebook!", Toast.LENGTH_SHORT) .show(); } } }; Request request = new Request(session, "me/feed", postParams, HttpMethod.POST, callback); RequestAsyncTask task = new RequestAsyncTask(request); task.execute(); } } @Override protected void onDestroy() { // if (null != syncTask) // syncTask.cancel(true); if (null != postSongsTask) postSongsTask.cancel(true); if (null != dataTask) dataTask.cancel(true); isSync = false; follow_fbid = null; if (likeReceiver != null) unregisterReceiver(likeReceiver); if (mProcessSyncingReciever != null) unregisterReceiver(mProcessSyncingReciever); // unregisterReceiver(networkStateReceiver); if (mNotificationBroadcastReceiver != null) unregisterReceiver(mNotificationBroadcastReceiver); try { GCMRegistrar.onDestroy(this); } catch (Exception e) { } /* * new SaveDataTask(getApplicationContext(), users){ * * @Override public void doneSave() { // TODO Auto-generated method stub * * } }.execute(); */ super.onDestroy(); } public void loadScreenAfterDialog(){ // myViewLoadingFirst.setVisibility(View.GONE); // ll_splash_hidden.setVisibility(View.GONE); edt.putBoolean("IS_FIRST_TIME", false); edt.commit(); if (Statics.curUser != null) { dismissDialog(); MainFragment m2 = new MainFragment(); m2.setCurTab(0); setNewPage(m2); stopLoadingAnimation(); } else{ setNewPage(new LoadingFragment()); ll_splash_hidden.setVisibility(View.VISIBLE); startLoadingAnimation(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.i("check","On activity result"); // if (requestCode == SPLASH_RQ_CODE) { //// myViewLoadingFirst.setVisibility(View.GONE); //// ll_splash_hidden.setVisibility(View.GONE); // // edt.putBoolean("IS_FIRST_TIME", false); // edt.commit(); // // if (Statics.curUser != null) { // dismissDialog(); // // MainFragment m2 = new MainFragment(); // m2.setCurTab(0); // setNewPage(m2); // stopLoadingAnimation(); // } // else{ // setNewPage(new LoadingFragment()); // ll_splash_hidden.setVisibility(View.VISIBLE); // startLoadingAnimation(); // } //// Log.e("check","Calling get All user's data in bg from activity result"); //// getAllUsersDataInBg(); // } } private void setNoSongText(boolean isFromRefresh) { try{ // if (Statics.curUser != null && Statics.curUser.getNoSong() > 0) { String msg = null; String msg1 = null; // if(isFromRefresh) { if (PostSongToServerTask.sPhones != null && PostSongToServerTask.exists != null ) { msg = getString(R.string.main_shared_songs_msg_6,PostSongToServerTask.exists.size()); msg1 = getString(R.string.main_shared_songs_msg_7,PostSongToServerTask.sPhones.size()); } } // else{ // if (SyncSongTask.sPhones != null && SyncSongTask.exists != null ) { // msg = getString(R.string.main_shared_songs_msg_6,SyncSongTask.exists.size()); // msg1 = getString(R.string.main_shared_songs_msg_7,SyncSongTask.sPhones.size()); // } // } tvNoSongShare.setText(Html.fromHtml(msg)); tvNoFollowYou.setText(Html.fromHtml(msg1)); } } catch(Exception e){ e.printStackTrace(); } } private void dismissDialog() { Log.e("check","in Dismiss dialog,,,,"); if (Statics.curUser != null) { slide.setVisibility(View.VISIBLE); stopLoadingAnimation(); ll_splash_hidden.setVisibility(View.GONE); } } public void setHasReload(boolean val) { hasReload = val; } SingleMediaScanner mMediaScanner = null; @Override protected void onPause() { super.onPause(); stopLoadingAnimation(); } @Override protected void onResume() { if (mMediaScanner != null) { mMediaScanner = new SingleMediaScanner(this, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.getPath()); } super.onResume(); openUserProfileFromNotification(); /* if (FROM_GCM) { if (Statics.hashUsers != null) { User user = Statics.hashUsers.get(FB_ID_GCM); if (user != null) { openUserDetail(user); } else { if (Statics.curUser != null) { new GetUserDetailTask(MainActivity.this, Statics.curUser.getFbid(), FB_ID_GCM) { protected void onPostExecute(User result) { super.onPostExecute(result); openUserDetail(result); } }.execute(); } } } FROM_GCM = false; }*/ } public void openUserProfileFromNotification(){ if (FROM_GCM) { if (Statics.hashUsers != null) { // User user = Statics.hashUsers.get(FB_ID_GCM); /*if (user != null) { openUserDetail(user); } else*/ { if (Statics.curUser != null) { new GetUserDetailTask(MainActivity.this, Statics.curUser.getFbid(), FB_ID_GCM) { protected void onPostExecute(User result) { super.onPostExecute(result); openUserDetail(result); } }.execute(); } } FROM_GCM = false; } } } private void openUserDetail(User user) { setNavTitle("User's Detail"); UserDetailsFragment fragment = new UserDetailsFragment(); fragment.setUser(user); FragmentTransaction fragmentTransaction = MainActivity.this .getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frame_content, fragment,"UserDetailFragment"); fragmentTransaction.addToBackStack(null); fragmentTransaction.commitAllowingStateLoss(); } public interface OnShareListener { public void onShare(); } public void showShareAction(OnShareListener listener) { if (mActionShare != null) { mActionShare.postDelayed(new Runnable() { @Override public void run() { mActionShare.setVisibility(View.VISIBLE); } }, 100); } mOnShareListener = listener; } public void hideShareAction() { if (mActionShare != null) { mActionShare.setVisibility(View.GONE); } mOnShareListener = null; } public void setNavTitle(String title) { try { // tv_title.setText(title); } catch (Exception e) { } } public void setNavTitle(int titleRes) { try { // tv_title.setText(titleRes); } catch (Exception e) { } } @Override protected void onSaveInstanceState(Bundle outState) { outState.putSerializable("current_user", Statics.curUser); outState.putSerializable("hash_user", Statics.hashUsers); outState.putSerializable("like_date", Statics.likeDatas); // super.onSaveInstanceState(outState); } String[] _methodStrings = new String[]{"Sort","A - Z"}; public void CreateSpinner(){ final ArrayList<String> reasonArray = new ArrayList<String>(); for(int i = 0; i <_methodStrings.length;i ++){ reasonArray.add(_methodStrings[i]); } sortSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { String sortString = sortSpinner.getSelectedItem().toString(); ArtistFragment fragment = (ArtistFragment) getSupportFragmentManager().findFragmentByTag("ArtistFragment"); if(fragment != null){ if(fragment.isVisible()){ if(sortString.contains("A - Z")) fragment.sortAscending(); } } Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.frame_content); // UserDetailFragment frag = (UserDetailFragment) getSupportFragmentManager().findFragmentByTag("UserDetailFragment"); if(currentFragment != null){ if(currentFragment.getClass().equals(UserArtistsFragment.class)){ if(currentFragment.isVisible()){ if(sortString.contains("A - Z")) ((UserArtistsFragment)currentFragment).sortAscending(); } } } } @Override public void onNothingSelected(AdapterView<?> parentView) { } }); ArrayAdapter<String> methodAdapter = new ArrayAdapter<String>(this, R.drawable.spinner_item, reasonArray){ @Override public View getDropDownView(int position, View convertView,android.view.ViewGroup parent){ View v = convertView; if (v == null) { Context mContext = getBaseContext(); LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.simple_spinner_dropdown_item, null); } // The text view of the spinner list view TextView tv = (TextView) v.findViewById(android.R.id.text1); v.findViewById(R.id.spinner_img).setVisibility(View.GONE); String val = reasonArray.get(position); // remove the extra text here tv.setText(val.replace(":False", "")); boolean disabled = !isEnabled(position); if(disabled){tv.setTextColor(Color.GRAY);} else{tv.setTextColor(Color.WHITE);} return v; } }; methodAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sortSpinner.setAdapter(methodAdapter); } public void showSpinnerForSort(){/* View imvShareMargin = findViewById(R.id.imvShareMargin); View spinnerMargin = findViewById(R.id.spinnerMargin); imvShareMargin.setVisibility(View.GONE); spinnerMargin.setVisibility(View.VISIBLE); hideShareAction(); CreateSpinner(); sortSpinner.setVisibility(View.VISIBLE); */} public void hideSpinnerForSort(){/* View imvShareMargin = findViewById(R.id.imvShareMargin); View spinnerMargin = findViewById(R.id.spinnerMargin); imvShareMargin.setVisibility(View.VISIBLE); spinnerMargin.setVisibility(View.GONE); sortSpinner.setVisibility(View.GONE); mActionShare = (ImageView) findViewById(R.id.imvShare); mActionShare.setVisibility(View.VISIBLE); mActionShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mOnShareListener != null) { mOnShareListener.onShare(); } } }); //CreateSpinner(); */} public static int count = 0; public void pullDB() { try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "/data/data/" + getPackageName() + "/databases/Database_MusicMap"; String backupDBPath = "backupname"+count+".db"; File currentDB = new File(currentDBPath); File backupDB = new File(sd, backupDBPath); if (currentDB.exists()) { FileChannel src = new FileInputStream(currentDB).getChannel(); FileChannel dst = new FileOutputStream(backupDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); count++; } } } catch (Exception e) { e.printStackTrace(); } } private void startSyncNdCleanAnimation() { RotateAnimation anim = new RotateAnimation(0.0f, 360.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); anim.setRepeatCount(Animation.INFINITE); anim.setDuration(700); if(mImvRefresh != null) mImvRefresh.startAnimation(anim); } private void stopSynchCleanAnimation() { if(mImvRefresh != null) mImvRefresh.setAnimation(null); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.e("check","Orientation is " + newConfig.orientation); // setRequestedOrientation(newConfig.orientation); } }