Android Open Source - SurveySDK_android App Container






From Project

Back to project page SurveySDK_android.

License

The source code is released under:

Apache License

If you think the Android project SurveySDK_android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.survey.android.containers;
//  www.j  av a2s.co  m
import java.util.Locale;

import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.res.Configuration;
import android.location.Location;
import android.preference.PreferenceManager;
import android.telephony.TelephonyManager;


import com.survey.android.R;
import com.survey.android.util.ConstantData;
import com.survey.android.util.Log;
import com.survey.android.util.WhiteLabel;
import com.survey.android.webclient.SurveySSLSocketFactory;

public class AppContainer extends Application implements OnSharedPreferenceChangeListener {
  private static final String DEFAULT_UI_LANGUAGE = "en"; // not used in Survey
  
  private static final String TAG = "Application";
  private Locale locale = null;
  public Location location;
  public Long timeLocationFetced;
  
  /** current application context */
  public static Context context;

  /** unique device id **/
  public static String device_id;
  public static String device_os_version;
  public static String device_type;
  
  /** user token accessible globally **/
  private static String userToken;
  public static String getUserToken() {
    
    if (userToken == null || userToken.length() == 0) {
      SharedPreferences prefs = PreferenceManager
          .getDefaultSharedPreferences(context);
      userToken = prefs.getString(context.getString(R.string.token), null);      
    }

    return userToken;
  }
  
  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
      String key) {
  }
  
  @Override
    public void onConfigurationChanged(Configuration newConfig)
    {
    Log.d(TAG, "Application onConfigurationChange called, locale: " + locale + ", newConfigLocale: " + newConfig.locale.getLanguage());
        super.onConfigurationChanged(newConfig);
        if (locale != null) {
          newConfig.locale = locale;
          Locale.setDefault(locale);
          getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
        }
    }
  
  

    public AppContainer(Context context) {
    super();
    AppContainer.context = context;
        SurveySSLSocketFactory.appcontext = context;
        init();
  }

  @Override
    public void onCreate()
    {
        super.onCreate();
        context = getApplicationContext();
        SurveySSLSocketFactory.appcontext = context;
        init();
    }
    
    private void init() {
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
        
      if (ConstantData.WHITE_LABEL_APP.isWhiteLabel(WhiteLabel.SURVEY)) {
        
            Configuration config = context.getResources().getConfiguration();

            String lang = settings.getString("chosen_language", "");
            if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
            {
                locale = new Locale(lang);
                Locale.setDefault(locale);
                config.locale = locale;
                context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
            }

      } else {
        
            boolean firstTime = settings.getBoolean("first_time_opening_app", true);
            Log.d(TAG, "firstTime: " + firstTime);
          Editor editor = settings.edit();
            
            if (!firstTime) {
              
            
              editor.putBoolean("first_time_opening_app", false);
              editor.commit();
              
              Configuration config = context.getResources().getConfiguration();

              String lang = settings.getString("ui_language", "");
              if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
              {
                locale = new Locale(lang);
                Locale loc = new Locale(lang);
                Locale.setDefault(loc);
                config.locale = loc;
                context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
              }
            } else {
              editor.putBoolean("first_time_opening_app", false);
              editor.putString("ui_language", DEFAULT_UI_LANGUAGE);
              editor.putString("chosen_language", DEFAULT_UI_LANGUAGE);
              editor.commit();
              
              Configuration config = context.getResources().getConfiguration();

              String lang = DEFAULT_UI_LANGUAGE;
              if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
              {            
                locale = new Locale(lang);
                Locale.setDefault(locale);
                config.locale = locale;
                context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
              } 
            }
      }
      // set unique device_id to be used later
        TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        device_id = telephonyManager.getDeviceId();
        if (device_id == null)
          device_id = "";
        
        // set android os version to be used in registration/profile
        device_os_version = android.os.Build.VERSION.RELEASE;      
        if (device_os_version == null)
          device_os_version = "";
        
        // set device type to be used in registration/profile
        device_type = "android";
    }
  
}




Java Source Code List

android.UnusedStub.java
com.google.android.gms.BuildConfig.java
com.google.android.gms.BuildConfig.java
com.survey.android.UnusedStub.java
com.survey.android.c2dm.C2DMRegistrationReceiver.java
com.survey.android.c2dm.C2DMTokenRefresher.java
com.survey.android.c2dm.GcmBroadcastReceiver.java
com.survey.android.c2dm.GcmNotificationReceiver.java
com.survey.android.c2dm.GcmRegistrationService.java
com.survey.android.c2dm.RegService.java
com.survey.android.common.PlacesAutoCompleteAdapter.java
com.survey.android.common.Themes.java
com.survey.android.containers.AppContainer.java
com.survey.android.containers.PollContainer.java
com.survey.android.custom_widgets.FontTextView.java
com.survey.android.custom_widgets.PollRatingsScaleLabeled.java
com.survey.android.custom_widgets.PollRatings.java
com.survey.android.custom_widgets.PollSelectionTable.java
com.survey.android.db.SerializationHelper.java
com.survey.android.db.SerializationManager.java
com.survey.android.fragment.AudioRecorderFragment.java
com.survey.android.geofence.GeofenceRemover.java
com.survey.android.geofence.GeofenceRequester.java
com.survey.android.geofence.GeofenceUtils.java
com.survey.android.geofence.LocationServiceErrorMessages.java
com.survey.android.geofence.ReceiveTransitionsIntentService.java
com.survey.android.geofence.SimpleGeofenceStore.java
com.survey.android.geofence.SimpleGeofence.java
com.survey.android.model.AnswerModel.java
com.survey.android.model.CategoryModel.java
com.survey.android.model.CurrentSectionModel.java
com.survey.android.model.Prefs.java
com.survey.android.model.QuestionModel.java
com.survey.android.model.ResponseModel.java
com.survey.android.model.SurveyModel.java
com.survey.android.model.UserModel.java
com.survey.android.services.BackgroundUploader.java
com.survey.android.services.DataBroadcastReceiver.java
com.survey.android.services.DeviceStartUpReceiver.java
com.survey.android.services.GeoSurveyPollService.java
com.survey.android.services.LocationTesterService.java
com.survey.android.services.ReferrerCatcher.java
com.survey.android.session.Configuration.java
com.survey.android.session.Session.java
com.survey.android.util.Base64.java
com.survey.android.util.ConstantData.java
com.survey.android.util.GeoPush.java
com.survey.android.util.GeoTriggerBroadcastReceiver.java
com.survey.android.util.GeoTrigger.java
com.survey.android.util.LocationLog.java
com.survey.android.util.Log.java
com.survey.android.util.StrToIntMap.java
com.survey.android.util.StrToStrMap.java
com.survey.android.util.Toiler.java
com.survey.android.util.WhiteLabel.java
com.survey.android.view.Dashboard.java
com.survey.android.view.Gallery.java
com.survey.android.view.LocalizedFragmentActivity.java
com.survey.android.view.Main.java
com.survey.android.view.Notification.java
com.survey.android.view.Question.java
com.survey.android.view.Survey.java
com.survey.android.view.ThemeCustomizer.java
com.survey.android.view.themed.DashboardThemed.java
com.survey.android.view.themed.MainThemed.java
com.survey.android.view.themed.NotificationThemed.java
com.survey.android.view.themed.QuestionThemed.java
com.survey.android.view.themed.SurveyThemed.java
com.survey.android.webclient.HttpRequest.java
com.survey.android.webclient.HttpsClient.java
com.survey.android.webclient.RestClient.java
com.survey.android.webclient.SurveyHttpClient.java
com.survey.android.webclient.SurveyRequest.java
com.survey.android.webclient.SurveySSLSocketFactory.java
com.survey.android.webclient.SurveyX509TrustManager.java
com.survey.android.widget.Widget.java
com.survey.androiddemo.AppContainer.java
com.survey.androiddemo.LoginActivity.java
com.survey.androiddemo.MainActivity.java
com.survey.androiddemo.SDKConfigSettings.java