Java tutorial
/* * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.mobile.activities.settings; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import org.openmrs.mobile.R; import org.openmrs.mobile.models.SettingsListItemDTO; import java.util.ArrayList; import java.util.List; public class SettingsFragment extends Fragment implements SettingsContract.View { private SettingsContract.Presenter mPresenter; private List<SettingsListItemDTO> mListItem = new ArrayList<>(); private RecyclerView settingsRecyclerView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_settings, container, false); settingsRecyclerView = (RecyclerView) root.findViewById(R.id.settingsRecyclerView); settingsRecyclerView.setHasFixedSize(true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); settingsRecyclerView.setLayoutManager(linearLayoutManager); return root; } @Override public void onResume() { super.onResume(); mPresenter.start(); } @Override public void onPause() { super.onStop(); mListItem = new ArrayList<>(); } @Override public void setPresenter(SettingsContract.Presenter presenter) { this.mPresenter = presenter; } @Override public boolean isActive() { return isAdded(); } @Override public void addLogsInfo(long logSize, String logFilename) { mListItem.add(new SettingsListItemDTO(getResources().getString(R.string.settings_logs), logFilename, "Size: " + logSize + "kB")); } @Override public void addBuildVersionInfo() { String versionName = ""; int buildVersion = 0; PackageManager packageManager = this.getActivity().getPackageManager(); String packageName = this.getActivity().getPackageName(); try { versionName = packageManager.getPackageInfo(packageName, 0).versionName; ApplicationInfo ai = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA); buildVersion = ai.metaData.getInt("buildVersion"); } catch (PackageManager.NameNotFoundException e) { mPresenter.logException("Failed to load meta-data, NameNotFound: " + e.getMessage()); } catch (NullPointerException e) { mPresenter.logException("Failed to load meta-data, NullPointer: " + e.getMessage()); } mListItem.add(new SettingsListItemDTO(getResources().getString(R.string.settings_about), getResources().getString(R.string.app_name), versionName + " Build: " + buildVersion)); } @Override public void applyChanges() { SettingsRecyclerViewAdapter adapter = new SettingsRecyclerViewAdapter(mListItem); settingsRecyclerView.setAdapter(adapter); } public static SettingsFragment newInstance() { return new SettingsFragment(); } }