/*
* This file is part of Find Your Friend.
*
* Find Your Friend is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Find Your Friend is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Find Your Friend. If not, see <http://www.gnu.org/licenses/>.
*/
package com.sgu.findyourfriend.screen;
import android.app.Dialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import com.google.android.gcm.GCMRegistrar;
import com.sgu.findyourfriend.R;
import com.sgu.findyourfriend.mgr.Config;
import com.sgu.findyourfriend.mgr.MyProfileManager;
import com.sgu.findyourfriend.mgr.SQLiteDatabaseManager;
import com.sgu.findyourfriend.mgr.SettingManager;
import com.sgu.findyourfriend.net.PostData;
import com.sgu.findyourfriend.utils.Utility;
public class MainLoginActivity extends FragmentActivity {
private static String TAG = "MainLoginActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.main_auto_login);
// init Setting here
SettingManager.getInstance().init(getApplicationContext());
// init sqlite manager
SQLiteDatabaseManager.getInstance().init(getApplicationContext());
// Check if Internet Connection present
// Utility.checkConnectToNetworkForceQuit(this);
// option dialog online or offline
if (Utility.isConnectingToInternet(this)) {
// setScreen login waitting
if (SettingManager.getInstance().isAutoLogin()
&& !getIntent().hasExtra("fromLogout")) {
if (Config.MODE_OFFLINE) {
MyProfileManager.getInstance().init(
getApplicationContext(), 38, true);
// start main app
Intent i = new Intent(getApplicationContext(),
com.sgu.findyourfriend.screen.MainActivity.class);
startActivity(i);
finish();
} else {
// try login;
(new AsyncTask<Void, Void, Boolean>() {
private String phoneNumber;
private String password;
private String gcmId = "";
@Override
protected void onPreExecute() {
phoneNumber = SettingManager.getInstance()
.getPhoneAutoLogin();
password = SettingManager.getInstance()
.getPasswordAutoLogin();
}
@Override
protected Boolean doInBackground(Void... arg0) {
// login
int id = PostData.login(getApplicationContext(),
phoneNumber, password);
if (id > 0) {
SettingManager.getInstance()
.saveLastAccountIdLogin(id);
if (GCMRegistrar
.isRegistered(getApplicationContext())) {
gcmId = GCMRegistrar
.getRegistrationId(getApplicationContext());
PostData.updateGcmId(
getApplicationContext(), id, gcmId);
// // init sqlite manager
// SQLiteDatabaseManager.getInstance().init(getApplicationContext());
MyProfileManager.getInstance().init(
getApplicationContext(), id, true);
Log.i(TAG, "registed with " + gcmId);
} else {
Log.i(TAG, "empty gcmid");
// // init sqlite manager
// SQLiteDatabaseManager.getInstance().init(getApplicationContext());
MyProfileManager.getInstance().init(
getApplicationContext(), id, true);
GCMRegistrar.register(
getApplicationContext(),
Config.GOOGLE_SENDER_ID);
}
return true;
}
return false;
}
@Override
protected void onPostExecute(Boolean isOk) {
if (isOk) {
Intent i = new Intent(
getApplicationContext(),
com.sgu.findyourfriend.screen.MainActivity.class);
startActivity(i);
finish();
} else {
// show error
// showAlertManualLogin();
Utility.showDialog(Utility.CONFIRM, new Dialog(
MainLoginActivity.this), "Lỗi",
"Không thể đăng nhập tự động.",
"Đăng nhập thủ công",
new OnClickListener() {
@Override
public void onClick(View v) {
showScreen(new LoginFragment());
}
});
}
}
}).execute();
}
} else {
showScreen(new LoginFragment());
}
} else {
// show option dialog
optionOfflineDialog();
}
}
private void optionOfflineDialog() {
final Dialog dialog = new Dialog(MainLoginActivity.this);
// if (SQLiteDatabaseManager.getInstance().isDataBaseExist())
Utility.showDialog(
Utility.WARNING,
dialog,
"Không có kết nối mạng",
"Thiết bị chưa được kết nối mạng. Bạn có muốn kiểm tra cái đặt wifi?",
"Đồng ý", new OnClickListener() {
@Override
public void onClick(View v) {
showScreen(new LoginFragment());
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
dialog.dismiss();
// finish();
}
}, "Thoát", new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
finish();
}
});
}
private void showScreen(Fragment fragment) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container_framelayout, fragment);
ft.commit();
}
@Override
protected void onStop() {
super.onStop();
}
}