package com.refresh.pos.ui; import java.util.Locale; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import com.refresh.pos.R; import com.refresh.pos.domain.DateTimeStrategy; import com.refresh.pos.domain.LanguageController; import com.refresh.pos.domain.inventory.Inventory; import com.refresh.pos.domain.sale.Register; import com.refresh.pos.domain.sale.SaleLedger; import com.refresh.pos.techicalservices.AndroidDatabase; import com.refresh.pos.techicalservices.Database; import com.refresh.pos.techicalservices.DatabaseExecutor; import com.refresh.pos.techicalservices.inventory.InventoryDao; import com.refresh.pos.techicalservices.inventory.InventoryDaoAndroid; import com.refresh.pos.techicalservices.sale.SaleDao; import com.refresh.pos.techicalservices.sale.SaleDaoAndroid; /** * This is the first activity page, core-app and database created here. * Dependency injection happens here. * * @author Refresh Team * */ public class SplashScreenActivity extends Activity { public static final String POS_VERSION = "Mobile POS 0.8"; private static final long SPLASH_TIMEOUT = 2000; private Button goButton; private boolean gone; /** * Loads database and DAO. */ private void initiateCoreApp() { Database database = new AndroidDatabase(this); InventoryDao inventoryDao = new InventoryDaoAndroid(database); SaleDao saleDao = new SaleDaoAndroid(database); DatabaseExecutor.setDatabase(database); LanguageController.setDatabase(database); Inventory.setInventoryDao(inventoryDao); Register.setSaleDao(saleDao); SaleLedger.setSaleDao(saleDao); DateTimeStrategy.setLocale("th", "TH"); setLanguage(LanguageController.getInstance().getLanguage()); Log.d("Core App", "INITIATE"); } /** * Set language. * @param localeString */ private void setLanguage(String localeString) { Locale locale = new Locale(localeString); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); } @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); initiateUI(savedInstanceState); initiateCoreApp(); } /** * Go. */ private void go() { gone = true; Intent newActivity = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(newActivity); SplashScreenActivity.this.finish(); } /** * Initiate this UI. * @param savedInstanceState */ private void initiateUI(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_splashscreen); goButton = (Button) findViewById(R.id.goButton); goButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { go(); } }); new Handler().postDelayed(new Runnable() { @Override public void run() { if (!gone) go(); } }, SPLASH_TIMEOUT); } }