/* This file provided by Facebook is for non-commercial testing and evaluation
* purposes only. Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.facebook.device.yearclass.sample;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.widget.TextView;
import com.facebook.device.yearclass.YearClass;
public class MainActivity extends Activity {
private static final String PREF_FILE = "YearClass";
private static final String PREF_NAME = "yearclass";
private TextView mYearClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.penaltyDeath()
.build());
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetOrComputeYearClass findYearClass = new GetOrComputeYearClass();
findYearClass.execute();
mYearClass = (TextView) findViewById(R.id.year_class);
}
private class GetOrComputeYearClass extends AsyncTask<Void, Void, Integer> {
@Override
protected Integer doInBackground(Void... voids) {
int yearClass = YearClass.CLASS_UNKNOWN;
SharedPreferences prefs = getSharedPreferences(PREF_FILE, 0);
if (prefs.contains(PREF_NAME)) {
yearClass = prefs.getInt(PREF_NAME, YearClass.CLASS_UNKNOWN);
}
//Try again if device was previously unknown.
if (yearClass == YearClass.CLASS_UNKNOWN) {
yearClass = YearClass.get(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(PREF_NAME, yearClass);
editor.apply();
}
return yearClass;
}
@Override
protected void onPostExecute(Integer yearClass) {
//update UI
mYearClass.setText(Integer.toString(yearClass));
}
}
}