Java tutorial
/* * Copyright (C) 2015 Domoticz * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ package nl.hnogames.domoticz.Fragments; import android.app.ProgressDialog; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.ListView; import java.util.ArrayList; import nl.hnogames.domoticz.Adapters.LogAdapter; import nl.hnogames.domoticz.Containers.LogInfo; import nl.hnogames.domoticz.Domoticz.Domoticz; import nl.hnogames.domoticz.Interfaces.DomoticzFragmentListener; import nl.hnogames.domoticz.Interfaces.LogsReceiver; import nl.hnogames.domoticz.R; import nl.hnogames.domoticz.app.DomoticzFragment; public class Logs extends DomoticzFragment implements DomoticzFragmentListener { private Domoticz mDomoticz; private LogAdapter adapter; private ProgressDialog progressDialog; private Context mContext; private SwipeRefreshLayout mSwipeRefreshLayout; @Override public void refreshFragment() { if (mSwipeRefreshLayout != null) mSwipeRefreshLayout.setRefreshing(true); processLogs(); } @Override public void onAttach(Context context) { super.onAttach(context); mContext = context; getActionBar().setTitle(R.string.title_logs); } @Override public void Filter(String text) { try { if (adapter != null) adapter.getFilter().filter(text); super.Filter(text); } catch (Exception ex) { ex.printStackTrace(); } } @Override public void onConnectionOk() { showProgressDialog(); mDomoticz = new Domoticz(mContext); processLogs(); } private void processLogs() { mDomoticz.getLogs(new LogsReceiver() { @Override public void onReceiveLogs(ArrayList<LogInfo> mLogInfos) { successHandling(mLogInfos.toString(), false); adapter = new LogAdapter(mContext, mLogInfos); createListView(); hideProgressDialog(); } @Override public void onError(Exception error) { errorHandling(error); } }); } private void createListView() { if (getView() != null) { mSwipeRefreshLayout = (SwipeRefreshLayout) getView().findViewById(R.id.swipe_refresh_layout); ListView listView = (ListView) getView().findViewById(R.id.listView); listView.setAdapter(adapter); mSwipeRefreshLayout.setRefreshing(false); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { processLogs(); } }); } } /** * Initializes the progress dialog */ private void initProgressDialog() { progressDialog = new ProgressDialog(this.getActivity()); progressDialog.setMessage(getString(R.string.msg_please_wait)); progressDialog.setCancelable(false); } /** * Shows the progress dialog if isn't already showing */ private void showProgressDialog() { if (progressDialog == null) initProgressDialog(); if (!progressDialog.isShowing()) progressDialog.show(); } /** * Hides the progress dialog if it is showing */ private void hideProgressDialog() { if (progressDialog.isShowing()) progressDialog.dismiss(); } @Override public void errorHandling(Exception error) { super.errorHandling(error); hideProgressDialog(); } }