package com.socioboard.t_board_pro;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import org.json.JSONObject;
import com.appnext.appnextsdk.AppnextTrack;
import com.socioboard.t_board_pro.twitterapi.TwitterRequestCallBack;
import com.socioboard.t_board_pro.twitterapi.TwitterUserShowRequest;
import com.socioboard.t_board_pro.util.FollowersNotificationReceiver;
import com.socioboard.t_board_pro.util.MainSingleTon;
import com.socioboard.t_board_pro.util.ModelUserDatas;
import com.socioboard.t_board_pro.util.MyBadPaddingException;
import com.socioboard.t_board_pro.util.TboardproLocalData;
import com.socioboard.tboardpro.R;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.Dialog;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class SplashActivity extends Activity {
// Local DataBase
TboardproLocalData twiterManyLocalData;
SharedPreferences preferences;
MyBadPaddingException e = new MyBadPaddingException();
Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
// initialize Your Twitter Keys Here
// .............................................
// .............................................
AppnextTrack.track(this);
twiterManyLocalData = new TboardproLocalData(getApplicationContext());
twiterManyLocalData.CreateTable();
MainSingleTon.resetSigleTon();
MainSingleTon.allUserdetails = twiterManyLocalData.getAllUsersData();
preferences = getSharedPreferences("twtboardpro", Context.MODE_PRIVATE);
editor = getSharedPreferences("twtboardpro", Context.MODE_PRIVATE).edit();
boolean isTwitterKeyAssigned = false;
isTwitterKeyAssigned = preferences.getBoolean(MainSingleTon.isTwitterKeyAssigned, false);
if (isTwitterKeyAssigned) {
initializeTwitterkeys(preferences.getString(MainSingleTon.T_KEY, ""),
preferences.getString(MainSingleTon.T_SECRET, ""),
preferences.getString(MainSingleTon.T_oauth_callbackURL, ""));
if (MainSingleTon.allUserdetails.size() == 0) {
System.out.println(MainSingleTon.allUserdetails.size() + " first time");
Intent intent = new Intent(SplashActivity.this, WelcomeActivity.class);
startActivity(intent);
finish();
} else {
// last activated User
MainSingleTon.autodm = preferences.getBoolean("autodm", false);
MainSingleTon.autoDmfirstime = preferences.getString("autoDmfirstime", "yes");
System.out.println("autodm = " + MainSingleTon.autodm);
System.out.println("autoDmfirstime = " + MainSingleTon.autoDmfirstime);
String userId = preferences.getString("userid", null);
if (userId != null) {
MainSingleTon.currentUserModel = MainSingleTon.allUserdetails.get(userId);
System.out.println(MainSingleTon.currentUserModel + " currentUserModel");
Intent in = new Intent(SplashActivity.this, MainActivity.class);
startActivity(in);
SplashActivity.this.finish();
} else {
editor.putString("userid", MainSingleTon.currentUserModel.getUserid());
editor.commit();
Map.Entry<String, ModelUserDatas> entry = MainSingleTon.allUserdetails.entrySet().iterator().next();
userId = entry.getKey();
MainSingleTon.currentUserModel = MainSingleTon.allUserdetails.get(userId);
Intent in = new Intent(SplashActivity.this, MainActivity.class);
startActivity(in);
SplashActivity.this.finish();
}
String dateStr = preferences.getString("date", "***");
System.out.println("dateStr " + dateStr); // 2014/08/06 15:59:48
if (dateStr.contains("***")) {
//
System.out.println("*************** Schedulle it FirstTime ********* " + dateStr);
// 2014/08/06
// 15:59:48
// **************************************
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();
System.out.println(dateFormat.format(date)); // 2014/08/06
// 15:59:48
editor.putString("date", dateFormat.format(date));
editor.commit();
AlarmManager alarmManagers;
alarmManagers = (AlarmManager) getApplicationContext()
.getSystemService(getApplicationContext().ALARM_SERVICE);
Intent myIntent = new Intent(SplashActivity.this, FollowersNotificationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(SplashActivity.this, 465, myIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
alarmManagers.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 43200000,
pendingIntent);
System.out.println("Notification Schedulle Calender is " + calendar);
// **************************************
} else {
System.out.println(" Not dont set It second time ");
}
}
} else {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
new AlertDialog.Builder(SplashActivity.this).setTitle("Application setup")
.setMessage("You need to configure Twitter API keys in order to use all Functionalities.")
.setPositiveButton("Next", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
initKeyDialog();
}
}).setIcon(R.drawable.ic_launcher).show();
}
}, 1000);
}
}
private void initKeyDialog() {
final int sdk = android.os.Build.VERSION.SDK_INT;
final Dialog dialogIntkey = new Dialog(SplashActivity.this);
dialogIntkey.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialogIntkey.setContentView(R.layout.apikeydialog);
dialogIntkey.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialogIntkey.getWindow();
lp.copyFrom(window.getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(lp);
dialogIntkey.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialogIntkey.setCancelable(false);
final EditText editText1Key;
final EditText editText1Secret;
final EditText editTextCallbcak;
editText1Key = (EditText) dialogIntkey.findViewById(R.id.editText1Key);
editText1Secret = (EditText) dialogIntkey.findViewById(R.id.editText1Secret);
editTextCallbcak = (EditText) dialogIntkey.findViewById(R.id.editTextCallbcak);
Button buttonPaste1, buttonPaste2, buttonPaste3;
ImageView imageView2Info = (ImageView) dialogIntkey.findViewById(R.id.imageView2Info);
imageView2Info.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
infoDialog();
}
});
buttonPaste1 = (Button) dialogIntkey.findViewById(R.id.buttonPaste1);
buttonPaste2 = (Button) dialogIntkey.findViewById(R.id.buttonPaste2);
buttonPaste3 = (Button) dialogIntkey.findViewById(R.id.buttonPaste3);
buttonPaste1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pasteText;
// TODO Auto-generated method stub
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(
Context.CLIPBOARD_SERVICE);
pasteText = clipboard.getText().toString();
editText1Key.append(pasteText);
} else {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard.hasPrimaryClip() == true) {
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
pasteText = item.getText().toString();
editText1Key.append(pasteText);
} else {
Toast.makeText(getApplicationContext(), "Nothing to Paste", Toast.LENGTH_SHORT).show();
}
}
// editText1Key.setText("JAb2y9lFdzwDqp5fLSOt6vXVY");
}
});
buttonPaste2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pasteText;
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(
Context.CLIPBOARD_SERVICE);
pasteText = clipboard.getText().toString();
editText1Secret.append(pasteText);
} else {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard.hasPrimaryClip() == true) {
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
pasteText = item.getText().toString();
editText1Secret.append(pasteText);
} else {
Toast.makeText(getApplicationContext(), "Nothing to Paste", Toast.LENGTH_SHORT).show();
}
}
// editText1Secret.setText("k5KcIkbwnILryjLZJ19Pis92PuykuiOSerHHtMtyelLarDiVZ7");
}
});
buttonPaste3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pasteText;
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(
Context.CLIPBOARD_SERVICE);
pasteText = clipboard.getText().toString();
editTextCallbcak.append(pasteText);
} else {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard.hasPrimaryClip() == true) {
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
pasteText = item.getText().toString();
editTextCallbcak.append(pasteText);
} else {
Toast.makeText(getApplicationContext(), "Nothing to Paste", Toast.LENGTH_SHORT).show();
}
}
// editTextCallbcak.setText("http://www.himanshumori.com/");
}
});
RelativeLayout relativeLayout = (RelativeLayout) dialogIntkey.findViewById(R.id.reloutbottom);
RelativeLayout reloutbottom2UseDefaults = (RelativeLayout) dialogIntkey
.findViewById(R.id.reloutbottom2UseDefaults);
relativeLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
boolean isEverythingOk1 = true, isEverythingOk2 = true, isEverythingOk3 = true;
if (editText1Key.getText().toString().isEmpty()) {
editText1Key.setError("Cannot be Empty");
isEverythingOk1 = false;
}
if (editText1Secret.getText().toString().isEmpty()) {
editText1Secret.setError("Cannot be Empty");
isEverythingOk2 = false;
}
if (editTextCallbcak.getText().toString().isEmpty()) {
editTextCallbcak.setError("Cannot be Empty");
isEverythingOk3 = false;
}
if (isEverythingOk1 && isEverythingOk2 && isEverythingOk3) {
String apiKey = editText1Key.getText().toString();
String apiSecret = editText1Secret.getText().toString();
String CallbcakUrl = editTextCallbcak.getText().toString();
if (isNetworkAvailable(getApplicationContext())) {
verifyKeysAndSave(apiKey, apiSecret, CallbcakUrl,dialogIntkey);
} else {
myToastS("No Internet Connection");
myToastS("Unable to verify Credentials");
}
}
}
});
reloutbottom2UseDefaults.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(SplashActivity.this).setTitle("Warning!")
.setMessage(
"If you are using default keys, Sometimes you may get problem in getting Data from Twitter.")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
editor.putBoolean(MainSingleTon.isTwitterKeyAssigned, true);
editor.putString(MainSingleTon.T_KEY, "************************");
editor.putString(MainSingleTon.T_SECRET, "***************************");
editor.putString(MainSingleTon.T_oauth_callbackURL, "********************");
editor.commit();
startActivity(new Intent(getApplicationContext(), SplashActivity.class));
finish();
}
}).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
}).setIcon(R.drawable.ic_dialog_alert_holo_light).show();
}
});
dialogIntkey.show();
}
void myToastL(final String toastMsg) {
Toast.makeText(getApplicationContext(), toastMsg, Toast.LENGTH_LONG).show();
}
void myToastS(final String toastMsg) {
Toast.makeText(getApplicationContext(), toastMsg, Toast.LENGTH_SHORT).show();
}
public boolean isNetworkAvailable(Context activity) {
ConnectivityManager connectivity = (ConnectivityManager) activity
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
Handler handler = new Handler();
protected void verifyKeysAndSave(final String apiKey, final String apiSecret, final String CallbcakUrl, final Dialog dialogIntkey) {
final ProgressDialog progressDialog = new ProgressDialog(SplashActivity.this);
progressDialog.setCancelable(false);
progressDialog.setMessage("Verifying credentials...");
progressDialog.show();
MainSingleTon.currentUserModel.setUserAcessToken("3902001134-0KHlNVQscxYxkgCSey5d5l0OzPnuqwvVDpnknDY");
MainSingleTon.currentUserModel.setUsersecretKey("278jYQWvgD4dfzVNMcOes9l9y403A3fBl97usgLNrcpIe");
MainSingleTon.TWITTER_KEY = apiKey;
MainSingleTon.TWITTER_SECRET = apiSecret;
TwitterUserShowRequest userShowRequest = new TwitterUserShowRequest(MainSingleTon.currentUserModel,
new TwitterRequestCallBack() {
@Override
public void onSuccess(JSONObject jsonObject) {
System.out.println("jsonObject");
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
progressDialog.cancel();
dialogIntkey.cancel();
}
});
editor.putBoolean(MainSingleTon.isTwitterKeyAssigned, true);
editor.putString(MainSingleTon.T_KEY, apiKey);
editor.putString(MainSingleTon.T_SECRET, apiSecret);
editor.putString(MainSingleTon.T_oauth_callbackURL, CallbcakUrl);
editor.commit();
startActivity(new Intent(getApplicationContext(), SplashActivity.class));
finish();
}
@Override
public void onSuccess(String jsonResult) {
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
progressDialog.cancel();
dialogIntkey.cancel();
}
});
System.out.println("jsonObject");
editor.putBoolean(MainSingleTon.isTwitterKeyAssigned, true);
editor.putString(MainSingleTon.T_KEY, apiKey);
editor.putString(MainSingleTon.T_SECRET, apiSecret);
editor.putString(MainSingleTon.T_oauth_callbackURL, CallbcakUrl);
editor.commit();
startActivity(new Intent(getApplicationContext(), SplashActivity.class));
finish();
}
@Override
public void onFailure(Exception e) {
System.out.println("Exception " + e);
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
progressDialog.cancel();
new AlertDialog.Builder(SplashActivity.this).setTitle("Invalid Credentials")
.setMessage("Please provide valid credentials")
.setPositiveButton("Try Again!", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).setIcon(R.drawable.ic_dialog_alert_holo_light).show();
}
});
}
});
userShowRequest.executeThisRequest("socioboard");
}
protected void infoDialog() {
final Dialog dialogIntkey = new Dialog(SplashActivity.this);
dialogIntkey.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialogIntkey.setContentView(R.layout.keyhelp);
dialogIntkey.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialogIntkey.getWindow();
lp.copyFrom(window.getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(lp);
ImageView imageView2Info = (ImageView) dialogIntkey.findViewById(R.id.imageView1);
imageView2Info.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialogIntkey.cancel();
}
});
dialogIntkey.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialogIntkey.setCancelable(true);
dialogIntkey.show();
}
private void initializeTwitterkeys(String consumerKey, String consumersecret, String CallbcakUrl) {
MainSingleTon.TWITTER_KEY = consumerKey;
MainSingleTon.TWITTER_SECRET = consumersecret;
MainSingleTon.oauth_callbackURL = CallbcakUrl;
System.out.println("MainSingleTon.TWITTER_KEY " + MainSingleTon.TWITTER_KEY);
System.out.println("MainSingleTon.TWITTER_SECRET " + MainSingleTon.TWITTER_SECRET);
System.out.println("MainSingleTon.oauth_callbackURL " + MainSingleTon.oauth_callbackURL);
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
finish();
}
}