Android Open Source - Sunshine Main Activity






From Project

Back to project page Sunshine.

License

The source code is released under:

Apache License

If you think the Android project Sunshine 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

/*
 * Copyright (C) 2014 The Android Open Source Project
 */*from w w w  .ja va  2 s . co m*/
 * Licensed 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 com.example.kylelehman.sunshine;

import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

  private final String LOG_TAG = MainActivity.class.getSimpleName();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
      getSupportFragmentManager().beginTransaction()
          .add(R.id.container, new ForecastFragment())
          .commit();
    }
  }


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
      startActivity(new Intent(this, SettingsActivity.class));
      return true;
    }
    if (id == R.id.action_map) {
      openPreferredLocationInMap();
      return true;
    }
    return super.onOptionsItemSelected(item);
  }

  private void openPreferredLocationInMap() {
    SharedPreferences sharedPrefs =
        PreferenceManager.getDefaultSharedPreferences(this);
    String location = sharedPrefs.getString(
        getString(R.string.pref_location_key),
        getString(R.string.pref_location_default));

    // Using the URI scheme for showing a location found on a map.  This super-handy
    // intent can is detailed in the "Common Intents" page of Android's developer site:
    // http://developer.android.com/guide/components/intents-common.html#Maps
    Uri geoLocation = Uri.parse("geo:0,0?").buildUpon()
        .appendQueryParameter("q", location)
        .build();

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(geoLocation);

    if (intent.resolveActivity(getPackageManager()) != null) {
      startActivity(intent);
    } else {
      Log.d(LOG_TAG, "Couldn't call " + location + ", no receiving apps installed!");
    }
  }
}




Java Source Code List

com.example.kylelehman.sunshine.DetailActivity.java
com.example.kylelehman.sunshine.FetchWeatherTask.java
com.example.kylelehman.sunshine.ForecastFragment.java
com.example.kylelehman.sunshine.MainActivity.java
com.example.kylelehman.sunshine.SettingsActivity.java
com.example.kylelehman.sunshine.Utility.java
com.example.kylelehman.sunshine.data.WeatherContract.java
com.example.kylelehman.sunshine.data.WeatherDbHelper.java
com.example.kylelehman.sunshine.data.WeatherProvider.java